💬 So schützt ihr euer Zuhause mit Home Assistant vor der eigenen Vergesslichkeit

🔒 Mehr Sicherheit im eigenen Zuhause – ohne Alarmanlage! Vergesslichkeit kann schnell zu einem Problem werden: Offene Fenster, offene Türen oder ein laufendes Gerät können im Alltag leicht übersehen werden. Genau hier kann Home Assistant helfen! 🏡✨ In diesem Video zeige ich euch zwei einfache Möglichkeiten, um euer Zuhause sicherer zu machen – nicht durch eine klassische Alarmanlage, sondern durch intelligente Automatisierungen, die eure Vergesslichkeit ausgleichen.

🔹 **Variante 1:** Eine schnelle und einfache Lösung – leicht umzusetzen und sofort nutzbar.

🔹 **Variante 2:** Eine elegantere, flexiblere Methode für alle, die es noch smarter möchten.

Mit Home Assistant könnt ihr alltägliche Risiken minimieren und euer Smart Home noch nützlicher gestalten. Seid gespannt! 🚀

Diesen Sensor verwende ich sehr gerne für meine Türen und Fenster *:

Die beiden Automatisierungsbeispiele aus dem Video:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Warnung vor einer offenen Tür
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.notify_night
to: "on"
- trigger: numeric_state
entity_id:
- zone.home
below: 1
conditions:
- condition: state
entity_id: binary_sensor.gruppe_aller_turen
state: "on"
actions:
- action: notify.mobile_app_iphone_tobias
metadata: {}
data:
title: Hausinformation
message: Es ist noch eine Türe geöffnet
mode: single
alias: Warnung vor einer offenen Tür description: "" triggers: - trigger: state entity_id: - input_boolean.notify_night to: "on" - trigger: numeric_state entity_id: - zone.home below: 1 conditions: - condition: state entity_id: binary_sensor.gruppe_aller_turen state: "on" actions: - action: notify.mobile_app_iphone_tobias metadata: {} data: title: Hausinformation message: Es ist noch eine Türe geöffnet mode: single
alias: Warnung vor einer offenen Tür
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.notify_night
    to: "on"
  - trigger: numeric_state
    entity_id:
      - zone.home
    below: 1
conditions:
  - condition: state
    entity_id: binary_sensor.gruppe_aller_turen
    state: "on"
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      title: Hausinformation
      message: Es ist noch eine Türe geöffnet
mode: single

Automatisierung 2

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Warnung vor einer offenen Tür 2
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.notify_night
to: "on"
- trigger: numeric_state
entity_id:
- zone.home
below: 1
conditions:
- condition: template
value_template: |-
{{ expand(states.binary_sensor)
| selectattr('state', 'eq', 'on')
| selectattr('attributes.device_class', 'eq', 'door')
|rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])
| map(attribute='name')
| list | count > 0
}}
actions:
- action: notify.mobile_app_iphone_tobias
metadata: {}
data:
title: Hausinformation
message: >-
Es ist noch geöffnet: {{ expand(states.binary_sensor) |
selectattr('state', 'eq', 'on') |
selectattr('attributes.device_class', 'eq', 'door')
|rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])
| map(attribute='name') | list | join('\n') }}
mode: single
alias: Warnung vor einer offenen Tür 2 description: "" triggers: - trigger: state entity_id: - input_boolean.notify_night to: "on" - trigger: numeric_state entity_id: - zone.home below: 1 conditions: - condition: template value_template: |- {{ expand(states.binary_sensor) | selectattr('state', 'eq', 'on') | selectattr('attributes.device_class', 'eq', 'door') |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door']) | map(attribute='name') | list | count > 0 }} actions: - action: notify.mobile_app_iphone_tobias metadata: {} data: title: Hausinformation message: >- Es ist noch geöffnet: {{ expand(states.binary_sensor) | selectattr('state', 'eq', 'on') | selectattr('attributes.device_class', 'eq', 'door') |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door']) | map(attribute='name') | list | join('\n') }} mode: single
alias: Warnung vor einer offenen Tür 2
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.notify_night
    to: "on"
  - trigger: numeric_state
    entity_id:
      - zone.home
    below: 1
conditions:
  - condition: template
    value_template: |-
      {{ expand(states.binary_sensor)
        | selectattr('state', 'eq', 'on')
        | selectattr('attributes.device_class', 'eq', 'door')
        |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])
        | map(attribute='name')
        | list | count > 0
      }}
actions:
  - action: notify.mobile_app_iphone_tobias
    metadata: {}
    data:
      title: Hausinformation
      message: >-
        Es ist noch geöffnet: {{ expand(states.binary_sensor)   |
        selectattr('state', 'eq', 'on')   |
        selectattr('attributes.device_class', 'eq', 'door')  
        |rejectattr('entity_id', 'in' , ['binary_sensor.geschirrspuler_door'])  
        | map(attribute='name')   | list | join('\n') }}
mode: single

Weitere Videos, die zur Umsetzung hilfreich sein könnten und im Video erwähnt wurden:

YouTube player

YouTube player

YouTube player

📌 Home Assistant Sensordaten exportieren & in Excel nutzen! 🚀

Möchtest du Sensordaten aus Home Assistant exportieren und diese in Excel oder anderen Tools weiterverarbeiten? In meinem neuesten Video zeige ich dir, wie du mit einfachen Schritten deine Daten extrahierst, speicherst und optimal aufbereitest. Dabei erhältst du praktische Tipps, die dir helfen, deine Daten in handliche Formate zu überführen – ideal für den privaten Gebrauch oder berufliche Projekte.

Lass dich von den vielfältigen Möglichkeiten inspirieren und erweitere deine Kenntnisse im Umgang mit Home Assistant. So wird der Datenexport zu einem spannenden und unkomplizierten Prozess!

Was dich im Video erwartet:

  • Wie du Sensordaten aus Home Assistant extrahierst 📡
  • Welche Möglichkeiten es für den Export gibt 🔄
  • Wie du die Daten für Excel & Co. optimierst 📊

Video:
Schau dir das Video hier an: https://youtu.be/iEUIEaDh5XU

Home Assistant: Kalender Automatisierungen gehen so einfach ! 📅 ( Einsteiger ready)

Oftmals hat man den Anwendungsfall, dass man auf ein Kalenderevent triggern möchte. Sei es, dass man sich eine 📲 Benachrichtigung schicken lassen möchte, wenn ein Event ansteht, oder aber eine 🤖 Automatisierung ausgeführt werden soll. Ebenso interessant ist, wann welche 🗑️ Mülltonne an die Straße gestellt werden muss. Desto länger man drüber nachdenkt, umso mehr Anwendungsfälle fallen einem ein. 🔧 Mühsam? Nicht mit diesem Blueprint! Mit Templates und Automatisierungen in Home Assistant lässt sich das zwar umsetzen, aber heute stelle ich euch ein Blueprint vor, das euch diese Arbeit mit ein paar Klicks abnimmt. 🎁 Bonus: Ich zeige euch eine komplette Lösung für euren Müllkalender, inklusive einer Anzeige auf der Pixelclock Ulanzi TC001.

👉 Für den Ulanzi-Bonus müsst ihr als Basis dieses Video umgesetzt haben

🔗 Das Blueprint zum Video findet ihr hier

Tolle Arbeit des Entwicklers – ich war wirklich begeistert von diesem durchdachten Blueprint!

📢 Weitere Infos zu den Notification Sounds

YAML Code des Bonus Materials Müll-Kalender

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Müllkalender
description: ""
use_blueprint:
path: Blackshome/calendar-notifications-and-actions.yaml
input:
calendar: calendar.smarthomeandmore
include_calendar_trigger: disable_key_word
start_calendar_offset:
hours: 16
minutes: 0
seconds: 0
days: -1
include_start_notify: disable_start_notify_options
start_notify_device:
- d64818e1bf4a857f01f0f7589028ac75
include_start_auto_actions:
- enable_start_action_1
start_action_1:
- choose:
- conditions:
- condition: template
value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.gelber_sack
alias: Gelber Sack
- conditions:
- condition: template
value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.graue_tonne
alias: Graue Tonne
- conditions:
- condition: template
value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.grune_tonne
alias: Grüne Tonne
- conditions:
- condition: template
value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.sperrmull
alias: Sperrmüll
- conditions:
- condition: template
value_template: >-
{{ "Problemabfallsammeltermine" in
trigger.calendar_event.summary }}
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.problemabfallsammeltermine
alias: Problemabfallsammeltermine
include_end_notify: enable_end_notify_options
end_notify_device:
- d64818e1bf4a857f01f0f7589028ac75
end_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden !"
end_notify_interruption_level: critical
include_end_action_buttons:
- enable_end_action_button_1
end_action_button_1: "{{ trigger.calendar_event.summary }} rausgestellt?"
end_time_delay:
hours: 20
minutes: 0
seconds: 0
include_end_action_button_confirmation: enable_end_action_button_confirmation
end_action_button_confirmation_title: Müllinformation
end_action_1:
- choose:
- conditions:
- condition: template
value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.gelber_sack
alias: Gelber Sack
- conditions:
- condition: template
value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.graue_tonne
alias: Graue Tonne
- conditions:
- condition: template
value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.grune_tonne
alias: Grüne Tonne
- conditions:
- condition: template
value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}"
sequence:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.sperrmull
alias: Sperrmüll
- conditions:
- condition: template
value_template: >-
{{ "Problemabfallsammeltermine" in
trigger.calendar_event.summary }}
sequence:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.problemabfallsammeltermine
alias: Problemabfallsammeltermine
end_calendar_offset:
hours: 16
minutes: 0
seconds: 0
days: -2
end_action_button_confirmation_message: "{{ trigger.calendar_event.summary }} wurde rausgestellt!"
include_end_auto_actions:
- enable_end_action_1
start_title: "Müll "
end_time_delay_confirmation_message: >-
{{ trigger.calendar_event.summary }} : Müllabfuhr schon durch ! Müll
automatisch quittiert.
start_notify_interruption_level: active
start_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden!"
end_title: Müll
end_action_button_stop_confirmation_message: "{{ trigger.calendar_event.summary }} Vorgang abgebrochen!"
end_action_button_stop: Abbruch !
alias: Müllkalender description: "" use_blueprint: path: Blackshome/calendar-notifications-and-actions.yaml input: calendar: calendar.smarthomeandmore include_calendar_trigger: disable_key_word start_calendar_offset: hours: 16 minutes: 0 seconds: 0 days: -1 include_start_notify: disable_start_notify_options start_notify_device: - d64818e1bf4a857f01f0f7589028ac75 include_start_auto_actions: - enable_start_action_1 start_action_1: - choose: - conditions: - condition: template value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.gelber_sack alias: Gelber Sack - conditions: - condition: template value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.graue_tonne alias: Graue Tonne - conditions: - condition: template value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.grune_tonne alias: Grüne Tonne - conditions: - condition: template value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.sperrmull alias: Sperrmüll - conditions: - condition: template value_template: >- {{ "Problemabfallsammeltermine" in trigger.calendar_event.summary }} sequence: - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.problemabfallsammeltermine alias: Problemabfallsammeltermine include_end_notify: enable_end_notify_options end_notify_device: - d64818e1bf4a857f01f0f7589028ac75 end_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden !" end_notify_interruption_level: critical include_end_action_buttons: - enable_end_action_button_1 end_action_button_1: "{{ trigger.calendar_event.summary }} rausgestellt?" end_time_delay: hours: 20 minutes: 0 seconds: 0 include_end_action_button_confirmation: enable_end_action_button_confirmation end_action_button_confirmation_title: Müllinformation end_action_1: - choose: - conditions: - condition: template value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.gelber_sack alias: Gelber Sack - conditions: - condition: template value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.graue_tonne alias: Graue Tonne - conditions: - condition: template value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.grune_tonne alias: Grüne Tonne - conditions: - condition: template value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}" sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.sperrmull alias: Sperrmüll - conditions: - condition: template value_template: >- {{ "Problemabfallsammeltermine" in trigger.calendar_event.summary }} sequence: - action: input_boolean.turn_off metadata: {} data: {} target: entity_id: input_boolean.problemabfallsammeltermine alias: Problemabfallsammeltermine end_calendar_offset: hours: 16 minutes: 0 seconds: 0 days: -2 end_action_button_confirmation_message: "{{ trigger.calendar_event.summary }} wurde rausgestellt!" include_end_auto_actions: - enable_end_action_1 start_title: "Müll " end_time_delay_confirmation_message: >- {{ trigger.calendar_event.summary }} : Müllabfuhr schon durch ! Müll automatisch quittiert. start_notify_interruption_level: active start_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden!" end_title: Müll end_action_button_stop_confirmation_message: "{{ trigger.calendar_event.summary }} Vorgang abgebrochen!" end_action_button_stop: Abbruch !
alias: Müllkalender
description: ""
use_blueprint:
  path: Blackshome/calendar-notifications-and-actions.yaml
  input:
    calendar: calendar.smarthomeandmore
    include_calendar_trigger: disable_key_word
    start_calendar_offset:
      hours: 16
      minutes: 0
      seconds: 0
      days: -1
    include_start_notify: disable_start_notify_options
    start_notify_device:
      - d64818e1bf4a857f01f0f7589028ac75
    include_start_auto_actions:
      - enable_start_action_1
    start_action_1:
      - choose:
          - conditions:
              - condition: template
                value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.gelber_sack
            alias: Gelber Sack
          - conditions:
              - condition: template
                value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.graue_tonne
            alias: Graue Tonne
          - conditions:
              - condition: template
                value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.grune_tonne
            alias: Grüne Tonne
          - conditions:
              - condition: template
                value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.sperrmull
            alias: Sperrmüll
          - conditions:
              - condition: template
                value_template: >-
                  {{ "Problemabfallsammeltermine" in
                  trigger.calendar_event.summary }}
            sequence:
              - action: input_boolean.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.problemabfallsammeltermine
            alias: Problemabfallsammeltermine
    include_end_notify: enable_end_notify_options
    end_notify_device:
      - d64818e1bf4a857f01f0f7589028ac75
    end_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden !"
    end_notify_interruption_level: critical
    include_end_action_buttons:
      - enable_end_action_button_1
    end_action_button_1: "{{ trigger.calendar_event.summary }} rausgestellt?"
    end_time_delay:
      hours: 20
      minutes: 0
      seconds: 0
    include_end_action_button_confirmation: enable_end_action_button_confirmation
    end_action_button_confirmation_title: Müllinformation
    end_action_1:
      - choose:
          - conditions:
              - condition: template
                value_template: "{{ \"Gelber Sack\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.gelber_sack
            alias: Gelber Sack
          - conditions:
              - condition: template
                value_template: "{{ \"Graue Tonne\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.graue_tonne
            alias: Graue Tonne
          - conditions:
              - condition: template
                value_template: "{{ \"Grüne Tonne\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.grune_tonne
            alias: Grüne Tonne
          - conditions:
              - condition: template
                value_template: "{{ \"Sperrmüll\" in trigger.calendar_event.summary }}"
            sequence:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.sperrmull
            alias: Sperrmüll
          - conditions:
              - condition: template
                value_template: >-
                  {{ "Problemabfallsammeltermine" in
                  trigger.calendar_event.summary }}
            sequence:
              - action: input_boolean.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: input_boolean.problemabfallsammeltermine
            alias: Problemabfallsammeltermine
    end_calendar_offset:
      hours: 16
      minutes: 0
      seconds: 0
      days: -2
    end_action_button_confirmation_message: "{{ trigger.calendar_event.summary }} wurde rausgestellt!"
    include_end_auto_actions:
      - enable_end_action_1
    start_title: "Müll "
    end_time_delay_confirmation_message: >-
      {{ trigger.calendar_event.summary }} : Müllabfuhr schon durch ! Müll
      automatisch quittiert.
    start_notify_interruption_level: active
    start_message: "{{ trigger.calendar_event.summary }} muss rausgestellt werden!"
    end_title: Müll
    end_action_button_stop_confirmation_message: "{{ trigger.calendar_event.summary }} Vorgang abgebrochen!"
    end_action_button_stop: Abbruch !

Hinweis: Für die Anzeige auf der Pixel Clock müssen die Inhalte dieses Videos umgesetzt worden sein!

YouTube player

YAML Code der Ulanzi TC-001 Awtrix 3 Anzeige

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Test Müll
description: ""
triggers:
- trigger: state
entity_id:
- input_boolean.gelber_sack
- input_boolean.graue_tonne
- input_boolean.grune_tonne
conditions: []
actions:
- if:
- condition: state
entity_id: input_boolean.gelber_sack
state: "on"
then:
- action: script.awtrix_new_app
metadata: {}
data:
rainbow: false
lifetime: 0
duration: 10
textcase: 0
textcolor:
- 255
- 255
- 255
progress: 0
topicname: Muell_Gelber_Sack
text: "Gelber Sack "
icon: "12345"
else:
- action: script.awtrix_delete_app
metadata: {}
data:
topicname: Muell_Gelber_Sack
mode: single
alias: Test Müll description: "" triggers: - trigger: state entity_id: - input_boolean.gelber_sack - input_boolean.graue_tonne - input_boolean.grune_tonne conditions: [] actions: - if: - condition: state entity_id: input_boolean.gelber_sack state: "on" then: - action: script.awtrix_new_app metadata: {} data: rainbow: false lifetime: 0 duration: 10 textcase: 0 textcolor: - 255 - 255 - 255 progress: 0 topicname: Muell_Gelber_Sack text: "Gelber Sack " icon: "12345" else: - action: script.awtrix_delete_app metadata: {} data: topicname: Muell_Gelber_Sack mode: single
alias: Test Müll
description: ""
triggers:
  - trigger: state
    entity_id:
      - input_boolean.gelber_sack
      - input_boolean.graue_tonne
      - input_boolean.grune_tonne
conditions: []
actions:
  - if:
      - condition: state
        entity_id: input_boolean.gelber_sack
        state: "on"
    then:
      - action: script.awtrix_new_app
        metadata: {}
        data:
          rainbow: false
          lifetime: 0
          duration: 10
          textcase: 0
          textcolor:
            - 255
            - 255
            - 255
          progress: 0
          topicname: Muell_Gelber_Sack
          text: "Gelber Sack "
          icon: "12345"
    else:
      - action: script.awtrix_delete_app
        metadata: {}
        data:
          topicname: Muell_Gelber_Sack
mode: single

EVCC spricht Home Assistant: So einfach geht’s jetzt mit HACS Integration 🚗⚡

YouTube player

Mit EVCC und Home Assistant wird das Management deines Elektroautos einfacher als je zuvor! 🚗⚡ In diesem Video zeige ich dir, wie du EVCC mit HACS und dem passenden Add-On in Home Assistant integrieren kannst. Egal ob Ladeplanung, Energieoptimierung oder smarte Automatisierungen – mit dieser Anleitung holst du das Maximum aus deinem Smart Home heraus. Schau rein und erfahre, wie simpel die Einrichtung wirklich ist!

HACS Integration: GitHub – marq24/ha-evcc: Home Assistant integration for evcc☀️🚘- optimized charging of electric vehicles, connecting your EV charger with your PV system. The integration use local polling (interval configurable) of the evcc API. Please note, that this integration is not official and not supported by the evcc developers. This project is not affiliated with evcc in any way.

Wichtiger Hinweis !: Im Video habe ich an der Stelle 6:03 benannt, dass ihr die IP Eures Home Assistant Servers (mit dem Port 7070) angeben sollt. Dies ist korrekt, wenn Ihr zusätzlich das HomeAssistant EVCC Addon installiert habt. Sollte Euere EVCC Installation nicht innerhalb von Home Assistant laufen, müsst Ihr hier die Adresse, unter der die EVCC Weboberfläche bei Euch im Netzwerk zu erreichen ist, eintragen. Nochmals der Hinweis, bevor ihr diese Integration über HACS hinzufügt, müsst Ihr EVCC bei Euch installiert haben (hier der link zum Video).

Code zum Bonus im Video:

Hinweis ! Die Entitäten müsst ihr mit den Namen eurer Entitäten im YAML Code ersetzen
Template Sensor Helfer „evcc_Tariff_Level“

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{% set current_time = now().replace(minute=0, second=0, microsecond=0) %}
{% set rates = state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] %}
{% set future_rates = rates | selectattr('start', '>=', current_time.isoformat()) | list %}
{% if future_rates | length > 0 %}
{% set prices = future_rates | map(attribute='price') | list %}
{% set avg_price = prices | average(0) %}
{% set min_price = prices | min(0) %}
{% set max_price = prices | max(0) %}
{% set current_price = states('sensor.evcc_tariff_grid_2') | float(0) %}
{# Definiere den Schwellenwert in Prozent (z.B. 80%) #}
{% set threshold_percent = 10 %}
{# Berechne den Preisunterschied basierend auf dem Schwellenwert #}
{% set price_diff = avg_price * (threshold_percent / 100) %}
{# Kategorisiere den aktuellen Preis basierend auf der Berechnung #}
{% if current_price < (avg_price - price_diff) %}
günstig
{% elif current_price > (avg_price + price_diff) %}
teuer
{% else %}
mittel
{% endif %}
{% else %}
unbekannt
{% endif %}
{% set current_time = now().replace(minute=0, second=0, microsecond=0) %} {% set rates = state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] %} {% set future_rates = rates | selectattr('start', '>=', current_time.isoformat()) | list %} {% if future_rates | length > 0 %} {% set prices = future_rates | map(attribute='price') | list %} {% set avg_price = prices | average(0) %} {% set min_price = prices | min(0) %} {% set max_price = prices | max(0) %} {% set current_price = states('sensor.evcc_tariff_grid_2') | float(0) %} {# Definiere den Schwellenwert in Prozent (z.B. 80%) #} {% set threshold_percent = 10 %} {# Berechne den Preisunterschied basierend auf dem Schwellenwert #} {% set price_diff = avg_price * (threshold_percent / 100) %} {# Kategorisiere den aktuellen Preis basierend auf der Berechnung #} {% if current_price < (avg_price - price_diff) %} günstig {% elif current_price > (avg_price + price_diff) %} teuer {% else %} mittel {% endif %} {% else %} unbekannt {% endif %}
{% set current_time = now().replace(minute=0, second=0, microsecond=0) %}
{% set rates = state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] %}
{% set future_rates = rates | selectattr('start', '>=', current_time.isoformat()) | list %}
{% if future_rates | length > 0 %}
  {% set prices = future_rates | map(attribute='price') | list %}
  {% set avg_price = prices | average(0) %}
  {% set min_price = prices | min(0) %}
  {% set max_price = prices | max(0) %}
  {% set current_price = states('sensor.evcc_tariff_grid_2') | float(0) %}
    {# Definiere den Schwellenwert in Prozent (z.B. 80%) #}
  {% set threshold_percent = 10 %}
  
  {# Berechne den Preisunterschied basierend auf dem Schwellenwert #}
  {% set price_diff = avg_price * (threshold_percent / 100) %}

  {# Kategorisiere den aktuellen Preis basierend auf der Berechnung #}
  {% if current_price < (avg_price - price_diff) %}
     günstig
  {% elif current_price > (avg_price + price_diff) %}
     teuer
  {% else %}
     mittel
  {% endif %}
  
{% else %}
    unbekannt
{% endif %}

Bonus Automatisierung:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: EVCC_Speicherladung
description: ""
triggers:
- entity_id:
- sensor.evcc_battery_soc_2
for:
minutes: 1
trigger: state
- entity_id:
- sensor.evcc_tariff_level
for:
minutes: 1
trigger: state
- entity_id:
- sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
for:
minutes: 1
trigger: state
- trigger: state
entity_id:
- sensor.evcc_tariff_grid_2
for:
hours: 0
minutes: 1
seconds: 0
conditions: []
actions:
- if:
- condition: or
conditions:
- condition: state
entity_id: sensor.evcc_tariff_level
state: mittel
- condition: state
entity_id: sensor.evcc_tariff_level
state: teuer
- condition: numeric_state
entity_id: sensor.evcc_battery_soc_2
above: 99
- condition: numeric_state
entity_id: sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
above: 10
then:
- action: number.set_value
data:
value: "0.0"
target:
entity_id: number.evcc_battery_grid_charge_limit
else:
- if:
- condition: and
conditions:
- condition: state
entity_id: sensor.evcc_tariff_level
state: günstig
for:
minutes: 1
- condition: numeric_state
entity_id: >-
sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
below: 10
- condition: numeric_state
entity_id: sensor.evcc_battery_soc_2
below: 100
then:
- action: number.set_value
data:
value: "{{ states('sensor.evcc_tariff_grid_2') | float(0) }}"
target:
entity_id: number.evcc_battery_grid_charge_limit
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.test_speicherladung
else:
- action: number.set_value
data:
value: "0.0"
target:
entity_id: number.evcc_battery_grid_charge_limit
mode: single
alias: EVCC_Speicherladung description: "" triggers: - entity_id: - sensor.evcc_battery_soc_2 for: minutes: 1 trigger: state - entity_id: - sensor.evcc_tariff_level for: minutes: 1 trigger: state - entity_id: - sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute for: minutes: 1 trigger: state - trigger: state entity_id: - sensor.evcc_tariff_grid_2 for: hours: 0 minutes: 1 seconds: 0 conditions: [] actions: - if: - condition: or conditions: - condition: state entity_id: sensor.evcc_tariff_level state: mittel - condition: state entity_id: sensor.evcc_tariff_level state: teuer - condition: numeric_state entity_id: sensor.evcc_battery_soc_2 above: 99 - condition: numeric_state entity_id: sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute above: 10 then: - action: number.set_value data: value: "0.0" target: entity_id: number.evcc_battery_grid_charge_limit else: - if: - condition: and conditions: - condition: state entity_id: sensor.evcc_tariff_level state: günstig for: minutes: 1 - condition: numeric_state entity_id: >- sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute below: 10 - condition: numeric_state entity_id: sensor.evcc_battery_soc_2 below: 100 then: - action: number.set_value data: value: "{{ states('sensor.evcc_tariff_grid_2') | float(0) }}" target: entity_id: number.evcc_battery_grid_charge_limit - action: input_boolean.turn_on metadata: {} data: {} target: entity_id: input_boolean.test_speicherladung else: - action: number.set_value data: value: "0.0" target: entity_id: number.evcc_battery_grid_charge_limit mode: single
alias: EVCC_Speicherladung
description: ""
triggers:
  - entity_id:
      - sensor.evcc_battery_soc_2
    for:
      minutes: 1
    trigger: state
  - entity_id:
      - sensor.evcc_tariff_level
    for:
      minutes: 1
    trigger: state
  - entity_id:
      - sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
    for:
      minutes: 1
    trigger: state
  - trigger: state
    entity_id:
      - sensor.evcc_tariff_grid_2
    for:
      hours: 0
      minutes: 1
      seconds: 0
conditions: []
actions:
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: sensor.evcc_tariff_level
            state: mittel
          - condition: state
            entity_id: sensor.evcc_tariff_level
            state: teuer
          - condition: numeric_state
            entity_id: sensor.evcc_battery_soc_2
            above: 99
          - condition: numeric_state
            entity_id: sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
            above: 10
    then:
      - action: number.set_value
        data:
          value: "0.0"
        target:
          entity_id: number.evcc_battery_grid_charge_limit
    else:
      - if:
          - condition: and
            conditions:
              - condition: state
                entity_id: sensor.evcc_tariff_level
                state: günstig
                for:
                  minutes: 1
              - condition: numeric_state
                entity_id: >-
                  sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
                below: 10
              - condition: numeric_state
                entity_id: sensor.evcc_battery_soc_2
                below: 100
        then:
          - action: number.set_value
            data:
              value: "{{ states('sensor.evcc_tariff_grid_2') | float(0) }}"
            target:
              entity_id: number.evcc_battery_grid_charge_limit
          - action: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.test_speicherladung
        else:
          - action: number.set_value
            data:
              value: "0.0"
            target:
              entity_id: number.evcc_battery_grid_charge_limit
mode: single

Blogbeitrag und Youtube Video zum Thema dynamischen Strompreis aus EVCC auslesen.

Home Assistant: EVCC-Daten zu dynamischen Strompreisen auslesen, visualisieren und damit rechnen – smarthome & more

Home Assistant: Automatische Lichteffekte ohne Aufwand – Zeit sparen mit diesem Script ! 💡

Beschreibung

Hast du auch Beleuchtungen, die Effekte integriert haben ? Klar, nicht immer will man dieses Lichtspektakel, es gibt aber auch Jahreszeiten, wo man sich darüber freut, dass man mal den einen oder anderen vielleicht „kitschigen“ Effekt laufen lässt. Und dann geht es los. Wie setze ich das um ?

Der erste Gedanke ist, dass man für jeden Effekt eine eigene Szene erstellt.

Aber sind wir mal ehrlich, da hat man innerhalb kürzester Zeit keine Lust mehr. Und genau hier möchte ich euch eine Lösung zeigen, die euch automatisch die Effekte ausliest und entweder einen zufälligen Effekt auswählt, oder aber die Effekte der Reihe nach durchgeht.

Wenn man in die Effektlisten der einzelnen Beleuchtungen schaut, dann können da schnell mal etliche Effekte zusammenkommen.

Um euch das Leben hier einfacher zu machen, habe ich euch ein Skript erstellt, in dem ihr eurer Licht übergebt, ein paar Übergabeparameter setzt und schon könnt ihr eure gewünschten Effekte laufen lassen.

Dieses Skript lässt sich einfach handhaben und in einer Automatisierung umsetzen. Als Beispiel möchte ich euch meine Weihnachtsbaum Automatisierung vorstellen.

Die zu übergebenden Parameter sind:

  • Licht ( beliebige Lichtentität mit Effekten)
  • random ( An / Aus )
  • brigthness ( 0% – 100%)
  • exclude ( Liste von Effekten, die bei der automatischen Selektion ausgeschlossen werden sollen )
  • transition ( Übergangszeit für einen weichen Übergang zum nächsten Effekt ) -> Hinweis: Das wird nicht von jeder Beleuchtung unterstützt. Ist diese Möglichkeit nicht vorhanden, so wird automatisch ohne Transition Time geschaltet.

In der obigen Beispielautomatisierung wird alle 30 Sekunden ein anderer Effekt selektiert. Der Zyklus ist vielleicht etwas kurz, aber hier könnt ihr frei entscheiden.

Gerne stelle ich euch das Script kostenfrei zur Verfügung und würde mich über Kommentare zum Video bei Youtube , aber auch ein Like und vielleicht ein Abo sehr freuen. Auch Anregungen zur sinnvollen Erweiterung finde ich immer sehr Klasse. Ich hoffe euch hilft diese Umsetzung und ihr könnt gerade in der aktuell adventlichen Zeit schnell ein paar schöne Effekte damit leuchten lassen. Wenn ihr dann noch eure Zeit dabei für die Umsetzung spart, dann habe ich mein Ziel schon erreicht.

Ich wünsche euch eine ruhige und besinnliche Adventszeit ( auch, wenn vielleicht mal ein Lichtspektakel dabei ist 🙂 ).

Das Skript ✨ Light Effect Toggle als YAML Code:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: ✨ Light Effect Toggle
sequence:
- action: light.turn_on
metadata: {}
data: {}
target:
entity_id: " {{ light }} "
alias: first turn on light
- variables:
current_effect: "{{ state_attr(light, 'effect') }}"
all_effects: >
{% set exclude_list = (exclude | default('')).split(',') | map('trim') |
list %} {{ state_attr(light, 'effect_list') | reject('in', exclude_list)
| list }}
effect_to_apply: |
{% if random %}
{{ all_effects | random }}
{% else %}
{% set idx = all_effects.index(current_effect) + 1 %}
{% if idx >= all_effects | length %}
{{ all_effects[0] }}
{% else %}
{{ all_effects[idx] }}
{% endif %}
{% endif %}
alias: get effect list ( light is on )
- action: light.turn_on
metadata: {}
data:
effect: "{{ effect_to_apply }}"
brightness_pct: "{{ brightness }}"
transition: "{{ transition | default(0) }}"
target:
entity_id: "{{light}}"
alias: apply effect
- action: logbook.log
data:
name: Actual Effect
message: "actual effect: {{ state_attr(light, 'effect') | default('None') }}"
- action: logbook.log
data:
name: effect to apply
message: "effect to apply: {{ state_attr(light, 'effect') | default('None') }}"
fields:
light:
name: Licht
description: Die zu steuernde Licht-Entität
selector:
entity:
domain: light
random:
selector:
boolean: {}
name: random
brightness:
selector:
number:
min: 1
max: 100
step: 1
name: brightness
required: true
default: 50
exclude:
selector:
text: null
name: exclude
description: enter the effects you want to exclude here, separated by commas
transition:
selector:
number:
min: 1
max: 10
step: 0.1
name: transition
description: time in seconds
default: 0
description: Toggles the effect of the specified light
mode: parallel
max: 10
alias: ✨ Light Effect Toggle sequence: - action: light.turn_on metadata: {} data: {} target: entity_id: " {{ light }} " alias: first turn on light - variables: current_effect: "{{ state_attr(light, 'effect') }}" all_effects: > {% set exclude_list = (exclude | default('')).split(',') | map('trim') | list %} {{ state_attr(light, 'effect_list') | reject('in', exclude_list) | list }} effect_to_apply: | {% if random %} {{ all_effects | random }} {% else %} {% set idx = all_effects.index(current_effect) + 1 %} {% if idx >= all_effects | length %} {{ all_effects[0] }} {% else %} {{ all_effects[idx] }} {% endif %} {% endif %} alias: get effect list ( light is on ) - action: light.turn_on metadata: {} data: effect: "{{ effect_to_apply }}" brightness_pct: "{{ brightness }}" transition: "{{ transition | default(0) }}" target: entity_id: "{{light}}" alias: apply effect - action: logbook.log data: name: Actual Effect message: "actual effect: {{ state_attr(light, 'effect') | default('None') }}" - action: logbook.log data: name: effect to apply message: "effect to apply: {{ state_attr(light, 'effect') | default('None') }}" fields: light: name: Licht description: Die zu steuernde Licht-Entität selector: entity: domain: light random: selector: boolean: {} name: random brightness: selector: number: min: 1 max: 100 step: 1 name: brightness required: true default: 50 exclude: selector: text: null name: exclude description: enter the effects you want to exclude here, separated by commas transition: selector: number: min: 1 max: 10 step: 0.1 name: transition description: time in seconds default: 0 description: Toggles the effect of the specified light mode: parallel max: 10
alias: ✨ Light Effect Toggle
sequence:
  - action: light.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: " {{ light }} "
    alias: first turn on light
  - variables:
      current_effect: "{{ state_attr(light, 'effect') }}"
      all_effects: >
        {% set exclude_list = (exclude | default('')).split(',') | map('trim') |
        list %} {{ state_attr(light, 'effect_list') | reject('in', exclude_list)
        | list }}
      effect_to_apply: |
        {% if random %}
          {{ all_effects | random }}
        {% else %}
          {% set idx = all_effects.index(current_effect) + 1 %}
          {% if idx >= all_effects | length %}
            {{ all_effects[0] }}
          {% else %}
            {{ all_effects[idx] }}
          {% endif %}
        {% endif %}
    alias: get effect list ( light is on )
  - action: light.turn_on
    metadata: {}
    data:
      effect: "{{ effect_to_apply }}"
      brightness_pct: "{{ brightness }}"
      transition: "{{ transition | default(0) }}"
    target:
      entity_id: "{{light}}"
    alias: apply effect
  - action: logbook.log
    data:
      name: Actual Effect
      message: "actual effect: {{ state_attr(light, 'effect') | default('None') }}"
  - action: logbook.log
    data:
      name: effect to apply
      message: "effect to apply: {{ state_attr(light, 'effect') | default('None') }}"
fields:
  light:
    name: Licht
    description: Die zu steuernde Licht-Entität
    selector:
      entity:
        domain: light
  random:
    selector:
      boolean: {}
    name: random
  brightness:
    selector:
      number:
        min: 1
        max: 100
        step: 1
    name: brightness
    required: true
    default: 50
  exclude:
    selector:
      text: null
    name: exclude
    description: enter the effects you want to exclude here, separated by commas
  transition:
    selector:
      number:
        min: 1
        max: 10
        step: 0.1
    name: transition
    description: time in seconds
    default: 0
description: Toggles the effect of the specified light
mode: parallel
max: 10

🎥 Home Assistant meets Community – Gemeinsam smarter leben!

In der Welt von Home Assistant entstehen ständig neue, kreative Lösungen, um den Alltag smarter und einfacher zu gestalten. In meinem neuesten Video stellen Mitglieder der Home Assistant Community ihre beeindruckenden Automatisierungsprojekte vor. Hier sind einige Highlights, die du nicht verpassen solltest:

🔹 Christian hat ein cleveres Setup für seine Waschmaschine und seinen Trockner entwickelt. Dank Home Assistant bekommt er immer rechtzeitig eine Benachrichtigung, wenn die Wäsche fertig ist – nie wieder zu spät die Maschine ausräumen oder den perfekten Zeitpunkt für den Wechsel verpassen!

🔹 Patrick präsentiert sein selbstgebautes, smartes Schlüsselbrett. Es kombiniert Technik und Kreativität auf eine beeindruckende Weise, die nicht nur praktisch ist, sondern auch stylisch in den Alltag integriert werden kann.

Diese Projekte zeigen, wie vielseitig Home Assistant eingesetzt werden kann – von nützlichen Haushaltshelfern bis hin zu kreativen Ideen, die dein Zuhause einzigartig machen.

Hast du auch spannende Automatisierungen umgesetzt? Teile sie in den Kommentaren oder lass dich von der Community inspirieren! 🚀

Die von Christian erwähnte Pixelclock bekommt ihr hier: Ulanzi TV001 smarte Pixel Uhr *

In diesem Video findet ihr noch weitere Informationen zur Pixelclock mit awtrix 3:

YouTube player

Als zuverlässigen Tür/Fenstersensor auf Zigbee Basis kann ich euch den Sensor von Aqara * empfehlen.

📘 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!

In dieser Playlist findest du alle bisherigen und kommenden Videos zum Thema Home Assistant Helfer:

YouTube player

🔍 Überwache Dein Smart Home wie ein Profi! 📊 Home Assistant Systemmonitoring einfach erklärt 🚀

In diesem Video zeige ich dir, wie du dein Smart Home mit Home Assistant perfekt überwachen kannst, damit alles reibungslos läuft! Durch das Systemmonitoring bleibst du immer über den Zustand deines Systems informiert, erkennst Probleme rechtzeitig und hältst die Leistung deines Smart Homes auf einem hohen Niveau. Gerade wenn du regelmäßig Geräte steuerst oder Automationen laufen lässt, ist ein zuverlässiges Monitoring unverzichtbar. Es sorgt nicht nur für Sicherheit, sondern gibt dir auch die Kontrolle, wie dein System „tickt“. Ich zeige dir, wie du das Monitoring-Tool in Home Assistant installieren und einrichten kannst – Schritt für Schritt und einfach erklärt. Anschließend gehen wir darauf ein, wie die einzelnen Komponenten und Sensoren funktionieren, damit du genau weißt, welche Daten dir angezeigt werden und was diese bedeuten. Sensoren spielen hier eine zentrale Rolle, da sie dir wichtige Infos liefern: von der CPU-Auslastung über die Temperatur bis hin zum freien Speicherplatz. So hast du alles auf einen Blick und kannst Störungen frühzeitig erkennen. Zum Schluss zeige ich dir, wie du diese Daten in eine kleine Automatisierung einbindest, sodass dein System im Notfall automatisch reagiert, etwa bei einem kritischen Speicherstand oder zu hoher Auslastung. Dein Home Assistant wird damit nicht nur smarter, sondern auch robuster. Perfekt für Einsteiger und erfahrene Home-Assistant-Nutzer, die ihr System auf das nächste Level heben möchten. Abonniere, um keine Tipps rund um dein Smart Home zu verpassen, und lass uns loslegen! 🎉

Die Automatisierung aus dem Video:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Systemzustände überwachen
description: >-
Sendet eine Benachrichtigung, wenn wichtige Systemzustände kritische Werte
überschreiten.
triggers:
- entity_id: sensor.localhost_cpu_auslastung_2
above: 80
trigger: numeric_state
- entity_id: sensor.localhost_speicherauslastung
above: 75
trigger: numeric_state
- entity_id: sensor.localhost_data_datentragernutzung
above: 90
trigger: numeric_state
actions:
- action: script.notify_all
metadata: {}
data:
alexa: false
message: " Warnung: Ein kritischer Systemzustand wurde erreicht! {% if trigger.entity_id == 'sensor.localhost_cpu_auslastung_2' %} CPU-Auslastung: {{ states('sensor.localhost_cpu_auslastung_2') }}% {% elif trigger.entity_id == 'sensor.localhost_speicherauslastung' %} RAM-Nutzung: {{ states('sensor.localhost_speicherauslastung') }}% {% elif trigger.entity_id == 'sensor.localhost_data_datentragernutzung' %} Festplattennutzung: {{ states('sensor.localhost_data_datentragernutzung') }}% {% endif %}"
mode: single
alias: Systemzustände überwachen description: >- Sendet eine Benachrichtigung, wenn wichtige Systemzustände kritische Werte überschreiten. triggers: - entity_id: sensor.localhost_cpu_auslastung_2 above: 80 trigger: numeric_state - entity_id: sensor.localhost_speicherauslastung above: 75 trigger: numeric_state - entity_id: sensor.localhost_data_datentragernutzung above: 90 trigger: numeric_state actions: - action: script.notify_all metadata: {} data: alexa: false message: " Warnung: Ein kritischer Systemzustand wurde erreicht! {% if trigger.entity_id == 'sensor.localhost_cpu_auslastung_2' %} CPU-Auslastung: {{ states('sensor.localhost_cpu_auslastung_2') }}% {% elif trigger.entity_id == 'sensor.localhost_speicherauslastung' %} RAM-Nutzung: {{ states('sensor.localhost_speicherauslastung') }}% {% elif trigger.entity_id == 'sensor.localhost_data_datentragernutzung' %} Festplattennutzung: {{ states('sensor.localhost_data_datentragernutzung') }}% {% endif %}" mode: single
alias: Systemzustände überwachen
description: >-
  Sendet eine Benachrichtigung, wenn wichtige Systemzustände kritische Werte
  überschreiten.
triggers:
  - entity_id: sensor.localhost_cpu_auslastung_2
    above: 80
    trigger: numeric_state
  - entity_id: sensor.localhost_speicherauslastung
    above: 75
    trigger: numeric_state
  - entity_id: sensor.localhost_data_datentragernutzung
    above: 90
    trigger: numeric_state
actions:
  - action: script.notify_all
    metadata: {}
    data:
      alexa: false
      message: "    Warnung: Ein kritischer Systemzustand wurde erreicht! {% if     trigger.entity_id == 'sensor.localhost_cpu_auslastung_2' %} CPU-Auslastung:     {{ states('sensor.localhost_cpu_auslastung_2') }}% {% elif trigger.entity_id     == 'sensor.localhost_speicherauslastung' %} RAM-Nutzung: {{     states('sensor.localhost_speicherauslastung') }}% {% elif trigger.entity_id     == 'sensor.localhost_data_datentragernutzung' %} Festplattennutzung: {{     states('sensor.localhost_data_datentragernutzung') }}% {% endif %}"
mode: single

Hinweis: In dieser Automatisierung wird ein Skript zur Ausgabe der Nachrichten verwendet. Weitere Informationen zum Skript findet ihr in hier. Bitte beachten, im Beispiel auf der verlinkten Seite nennt sich das Skript nicht „skript.notify_all“ sondern „script.notify_all_video2“. D.h. wenn ihr den Code kopieren wollt, müsst ihr den Namen des Skripts in der Automatisierung anpassen. Weitere Anpassungen von Device IDs und Notification Entitäten sind natürlich ebenfalls nach euren Entitäten anzupassen.

Ergänzend zum Blogbeitrag über Skripte, möchte ich euch hier nochmal das passende Skript für die obige Automatisierung veröffentlichen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: notify_all
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: ""
alias: notify_all 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: ""
alias: notify_all
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: ""

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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() }}"
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() }}"
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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() }}"
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() }}"
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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

Govee & Home Assistant: Funktioniert es endlich? Oder alles nur Schrott!? 🤔💥📱

In diesem Video zeige ich dir, ob es endlich möglich ist, deine Govee-Geräte problemlos in Home Assistant zu integrieren – oder ob du am Ende doch nur auf Frust stößt! 🤔💥

Wenn du ein Smart-Home-Enthusiast bist, hast du vielleicht schon versucht, deine Govee-LEDs oder Sensoren in Home Assistant zu integrieren. Oftmals war das ein holpriger Weg – aber mit Govee2Mqtt könnte sich das ändern! Ich werde dir erklären, was Govee2Mqtt genau ist, wie du es einrichtest, und ob es wirklich die Lösung für deine Govee-Produkte ist.

Bleib dran, denn es wird spannend! Funktionieren deine Govee-LEDs und Sensoren wirklich nahtlos, oder erlebst du nur Frust? Finde es gemeinsam mit mir heraus!

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!

Was ist Govee2Mqtt? 🤓

Govee2Mqtt ist eine Brücke zwischen deinen Govee-Geräten und Home Assistant. Es nutzt das MQTT-Protokoll, um Informationen von deinen Govee-LEDs und Sensoren zu übertragen und die Steuerung über Home Assistant zu ermöglichen. Das bedeutet, dass du nicht mehr auf die Govee-App angewiesen bist und stattdessen alle deine Smart-Home-Geräte in einer einzigen Oberfläche steuern kannst. Ein wahrer Traum für jeden, der ein nahtloses Smart Home anstrebt!

Aber ist es wirklich so einfach? Ich zeige dir in meinem Video Schritt für Schritt, wie du Govee2Mqtt einrichtest und worauf du achten musst, damit alles glatt läuft.

Schritt-für-Schritt-Anleitung zur Einrichtung 🛠️

  1. Govee-App-Einstellungen: Bevor du loslegst, musst du sicherstellen, dass deine Govee-Geräte korrekt in der Govee-App eingerichtet sind. Stelle sicher, dass alle Firmware-Updates durchgeführt wurden und die Geräte mit deinem WLAN verbunden sind.
  2. Grundvoraussetzungen für die Integration: Um die Integration in Home Assistant zu ermöglichen, benötigst du den Mosquitto MQTT Broker. Das ist das Bindeglied, das die Kommunikation zwischen deinen Govee-Geräten und Home Assistant sicherstellt.
  3. Installation von Mosquitto Broker: Dies ist der wichtigste Schritt, um das MQTT-Protokoll zu nutzen. Im Video zeige ich dir, wie du den Broker in Home Assistant installierst und einrichtest.
  4. Govee2MQTT Add-on installieren: Nachdem der MQTT Broker läuft, installieren wir das Govee2MQTT-Add-on, das als Brücke zwischen den Govee-Geräten und dem Broker fungiert.
  5. IP-Adresse der Govee-Lichter herausfinden: Ein entscheidender Schritt ist das Ermitteln der IP-Adressen deiner Govee-Geräte, damit sie korrekt in Home Assistant integriert werden können. Ich zeige dir, wie du diese Adressen herausfindest.
  6. Konfiguration in Home Assistant: Nachdem du die IP-Adressen hast, erfolgt die finale Konfiguration in Home Assistant. Jetzt kannst du deine Govee-Geräte steuern und in Automatisierungen einbinden!

Wie gut klappt die Integration in Home Assistant? 🧐

Die große Frage ist: Funktioniert die Integration wirklich nahtlos? Nach meiner Erfahrung hängt das von mehreren Faktoren ab. Die Einrichtung selbst ist relativ unkompliziert, wenn du den Schritten genau folgst. Die eigentliche Herausforderung liegt oft bei der Stabilität der Verbindung, insbesondere wenn du viele Geräte im Einsatz hast.

Im Video gehe ich darauf ein, wie zuverlässig Govee2Mqtt arbeitet und ob es zu Verzögerungen oder Verbindungsabbrüchen kommt. Aber ich kann dir schon verraten, dass die Integration für mich ziemlich gut funktioniert hat – es gibt jedoch einige Punkte, auf die du achten solltest.

Fazit: Ist es die Mühe wert? 💬

Am Ende des Videos ziehe ich ein Fazit: Govee2Mqtt ist definitiv eine spannende Möglichkeit, Govee-Geräte in Home Assistant zu integrieren. Für alle, die nach einer nahtlosen Lösung suchen, bietet es auf jeden Fall Potenzial – aber es ist nicht perfekt. Die Einrichtung erfordert einige technische Schritte, und es gibt ein paar Einschränkungen. Dennoch: Wenn du Govee-Produkte hast und sie in dein Smart Home einbinden möchtest, ist es definitiv einen Versuch wert!

Schau dir mein Video an und finde heraus, ob Govee2Mqtt auch für dich die Lösung ist! Wenn du Fragen hast oder eigene Erfahrungen teilen möchtest, lass es mich in den Kommentaren wissen.

Nützliche Links:

🔗 Playlist: Home Assistant – Die ersten Schritte
Wenn du gerade erst mit Home Assistant startest, findest du in dieser Playlist alles, was du für den Einstieg brauchst:
Zur YouTube-Playlist

💻 Govee2Mqtt auf GitHub
Hier findest du den GitHub-Link zu Govee2Mqtt, inklusive der Installationsanleitung und aller notwendigen Ressourcen:
Zur GitHub-Seite

Hier findest du die im Video verwendeten Lichter *:

Govee LED Sechseck Hexagon Panel Gaming,10 RGBIC Smart Wandleuchte Funktioniert mit Alexa, Google Assistant, Kreative Dekorative Wi-Fi, Musik Sync für Gaming Beleuchtung & Zimmer Deko
  • Passen Sie Ihr Wandmuster an:Entwerfen Sie Ihr eigenes modulares Gaming LED Hexagon Layout oder wählen Sie aus unseren empfohlenen Designs. Erstellen Sie eine personalisierte Beleuchtung, die Ihren Stil widerspiegelt und Ihr Setup zu mehr inspiriert.
  • Einzigartige RGBIC-Lichteffekte: Jedes LED Panel kann 6 unterschiedliche Farben gleichzeitig anzeigen, um fließende oder Farbaverlauf Effekte zu erzielen. Transparente Schale lässt Licht auf die Wand scheinen und den Paneelen fluoreszierend leuchten für geeignet.
  • Visualisieren Sie Ihre Lieder: 6 Arten von Music Sync Modes lassen jede led sechseck gaming wandleuchte im Rhythmus tanzen. Verwandeln Sie Ihre Lieblingslieder in eine Symphonie aus fließendem Licht und genießen Sie den fantastischen Moment.Ideal für Deko innen.
  • Reichhaltige belebte Effekte: Wählen Sie aus Szeneneffekten basierend auf Natur, Feiertagen und mehr. Die Govee Home App erkennt intelligent die Position von Gaming LED Panels für nahtlos fließende regenbogenartige Effekte über Ihr gesamtes Design.
  • App- und Sprachsteuerung: Erleben Sie umfassende Funktionen über Govee Home App, einschließlich Musik- und Szenenmodi, Timer und das Teilen von DIY-Effekten, und mit Alexa & Google Assistant freihändige Steuerung von Farben, Helligkeit und Effekten.
Govee COB Strip Light Pro 3m, Smart LED Streifen RGBIC mit Warmweiß, 3780 LEDs Leiste 1350lm Kompatibel mit Alexa, Google Assistant und Matter, Schneidbar Lichterkette mit Musik Sync für Schlafzimmer
  • COB-Technologie der Nächsten Generation: Govee COB LED Strip 3M 48W werden mit integrierter Verpackungstechnologie, 1260 LEDs/m gefertigt und 450lm/m, was innovative Technologie in hellere, gleichmäßigere und fließendere Lichteffekte umsetzt und als Zusatzbeleuchtung verwendet werden kann.
  • Makellos und streuend: Govee COB LED Strip, umhüllt von einer weichen Silikonhülle, 180 grad abstrahlwinkel, für kontinuierliche und makellose Beleuchtung. Geeignet für die Oberflächenmontage, die Ihre Beleuchtungsdesigns aufwertet.
  • Makellos und streuend: Govee COB LED Strip, umhüllt von einer weichen Silikonhülle, 180 grad abstrahlwinkel, für kontinuierliche und makellose Beleuchtung. Geeignet für die Oberflächenmontage, die Ihre Beleuchtungsdesigns aufwertet.
  • Kompatibel mit Matter und Mehr: Govee COB LED Streifen, die mit allen zertifizierten Smart-Home-Plattformen funktionieren, einschließlich HomeKit, Alexa, Google Assistant und mehr. Steuern Sie diese intelligenten LED Strip per Sprachbefehl für ein intelligenteres Erlebnis.
  • Mehr DIY-Spaß: Der DIY-Modus der Govee Home App ermöglicht die Steuerung von Govee COB LED Streifen mit 12 Segmenten pro Meter für personalisierte Farbdarstellungen und ultraweiche Lichteffekte. Es stehen 11 Musikmodi und 120 Szenenmodi zur Verfügung. Lassen Sie Ihrer Kreativität mit 16 Millionen Farben und 17 Animationseffekten freien Lauf.