Effizientes Home Assistant Management: DB komprimieren & Struktur optimieren

Frühling ist perfekt für eine Home-Assistant-Auffrischung! Entdecke in diesem Video einfache Schritte, um deine Datenbank zu optimieren und deine configuration.yaml zu organisieren. Hol dir das Beste aus deinem Smart-Home-Setup heraus und genieße eine reibungslose Steuerung deiner Geräte. Lass uns gemeinsam dein Zuhause smarter machen!

Link zur Dokumentation der Packages Integration:

Packages – Home Assistant (home-assistant.io)

Beispielautomatisierung Info Datenbankspeichergröße

alias: Test_Speicherbedarf
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.home_assistant_v2_db_grosse
    above: 5000
condition: []
action:
  - service: notify.persistent_notification
    metadata: {}
    data:
      message: >-
        Der Speicher der Datenbank hat die 5000 MB überschritten. Bitte Wartung
        vornehmen
mode: single

Configuration.Yaml ( Packages)

homeassistant:
  packages: !include_dir_named includes
  allowlist_external_dirs:
    - /config

Home Assistant: Dein Dashboard mit Card-Mod 3 individueller gestalten

Entdecke, wie du mit Home Assistant und Card-Mod dein Smart Home Dashboard individualisierst! Dieses Tutorial führt dich durch die Anpassung deiner Oberfläche an deine Bedürfnisse, von Geräten bis hin zum Erscheinungsbild. Das Video zeigt dir Schritt für Schritt die Verwendung der HACS Erweiterung Card-Mod in Kombination mit Templates um das Beste aus deinem Setup herauszuholen.

Links: Card-Mod3 : https://github.com/thomasloven/hass-config/wiki/Lovelace-Plugins

Wie du HACS installierst wird dir in diesem Video erklärt:

YAML Code:

Farbe Namen:

type: entities
entities:
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         color: red;
        }
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         color: green;
        }
  - entity: input_boolean.schalter1
title: Farbe von Entitätsnamen

Farbe Icons:

type: entities
entities:
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         --card-mod-icon-color: red;
        }
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         --card-mod-icon-color: blue;
         color: yellow
        }
  - entity: input_boolean.schalter1
title: Icon Farbe
card_mod:
  style: |
    ha-card {
    background: gray;
    }

Farbe Hintergrund:

type: entities
entities:
  - entity: input_boolean.schalter1
  - entity: input_boolean.schalter1
  - entity: input_boolean.schalter1
title: Background Color
card_mod:
  style: |
    ha-card {
    background: orange;
    }

Farbe , Icon, Schriftfarbe nach Zustand:

type: entities
entities:
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         {% if is_state('input_boolean.schalter1', 'on') %}
          --card-mod-icon: mdi:light-switch;
          --card-mod-icon-color: red;
          {% else %}
          --card-mod-icon: mdi:garage;
          --card-mod-icon-color: green;
          {% endif %}
         
        }
  - entity: input_boolean.schalter1
    card_mod:
      style: |
        :host {
         {% if is_state('input_boolean.schalter1', 'on') %}
          --card-mod-icon: mdi:light-switch;
          --card-mod-icon-color: red;
          {% else %}
          --card-mod-icon: mdi:light-switch-off;
          --card-mod-icon-color: green;
          {% endif %}
         
        }
  - entity: input_boolean.schalter1
title: Icon, Schrift, Background

Farbe, Icon, Schriftfarbe nach numerischen Zustand:

type: entities
entities:
  - entity: input_number.number1
    card_mod:
      style: |
        :host {  {% if states('input_number.number1') | int <=50  %}
          background: green;
          --card-mod-icon: mdi:light-switch;
          --card-mod-icon-color: orange
          {% elif states('input_number.number1') | int >50 and states('input_number.number1') | int < 80   %}
          background: yellow;
          --card-mod-icon: mdi:garage-open;
          {% elif states('input_number.number1') | int >= 80  %}
          background: red;
          {% endif %}

        }

Für eine “Tile” Card müssen ein paar andere Variablen verwendet werden. An dieser Stelle herzlichen Dank an @chrannen für diese super Ergänzung 💙

type: tile
entity: ENTITÄT
card_mod:
  style: |
    ha-card {
      {% if is_state("ENTITÄT", "on") %}
        --tile-color:crimson !important;
        --card-mod-icon: mdi:arrow-left-bold-box;
      {% else %}  
        --tile-color:darkgreen !important;
        --card-mod-icon: mdi:arrow-right-bold-box;
      {% endif %}  
    }

die wichtigsten Unterschiede sind:

– statt “:host” lautet der style “ha-card”

– hinter jede farbe muss der zusatz “!important;”

– statt “card-mod-icon-color” muss “tile-color” geschrieben werden

Zeit sparen mit Home Assistant: Kalenderereignisse für Smart-Home-Automatisierungen nutzen

Optimiere deine täglichen Abläufe, indem du Kalenderereignisse als Trigger für Automatisierungen in Home Assistant einsetzt. Verpasse nie wieder wichtige Termine – sei es ein Meeting oder ein Geburtstag. Dein Smart Home passt sich intelligent an deine Pläne an, sei es mit gedimmten Lichtern für ein Abendessen oder aktivierter Heizung bei deiner Rückkehr von der Arbeit. Entdecke eine neue Dimension des Wohnkomforts und spare Zeit mit Home Assistant.

Beispielautomatisierung aus Video:

alias: Kalender_Video
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "0:0:0"
    entity_id: calendar.smarthomeandmore
    id: StartEvent
  - platform: calendar
    event: end
    offset: "0:0:0"
    entity_id: calendar.smarthomeandmore
    id: StopEvent
condition:
  - condition: trigger
    id:
      - StartEvent
action:
  - choose:
      - conditions:
          - condition: and
            conditions:
              - condition: template
                value_template: "{{ '@Licht' in trigger.calendar_event.summary }}"
        sequence:
          - service: light.turn_on
            metadata: {}
            data: {}
            target:
              device_id: fbb93a7f058686a3b2f0591978fb3497
      - conditions:
          - condition: and
            conditions:
              - condition: template
                value_template: "{{ '@Licht' in trigger.calendar_event.summary }}"
              - condition: trigger
                id:
                  - StopEvent
        sequence:
          - service: light.turn_off
            target:
              device_id:
                - fbb93a7f058686a3b2f0591978fb3497
            data: {}
mode: single

Mit Home Assistant Icons nach Zustand dynamisch ändern

Entdecken Sie die Vielfalt von Home Assistant in der Gestaltung dynamischer Icons basierend auf Zuständen. Erleben Sie die Vielseitigkeit mit zwei Beispielen: einem binären Templatesensor für eine variable Icon-Anzeige und einem Sensor, der den Zustand eines Garagentors mit integrierter Dienstausführungsfunktion enthält.

Links aus dem Video:

Pictogrammers Website mit Icons: https://pictogrammers.com/library/mdi/

Home Assistant Template Integration: https://www.home-assistant.io/integrations/template/

Home Assistant Template Cover : https://www.home-assistant.io/integrations/cover.template/

Beispiel Template Sensor (binary_sensor):

binary_sensor:
  - platform: template
    sensors:
      garage:
        friendly_name: Garage
        value_template: "{{ states('binary_sensor.garagentorsensor_contact') }}"
        unique_id: garage_id
        icon_template: >
          {% if is_state('binary_sensor.garagentorsensor_contact', 'on') %} mdi:garage-open
          {% else %} mdi:garage
          {% endif %}

Beispiel Template Sensor (cover):

cover:
- platform: template
  covers:
    garagen_tor:
      friendly_name: Garagentor
      unique_id: garagentor_id
      value_template: "{{is_state('binary_sensor.garagentorsensor_contact', 'on' )}}"
      open_cover:
        service: input_boolean.toggle
        data:
          entity_id: input_boolean.garage_test
      close_cover:
        service: input_boolean.toggle
        data:
          entity_id: input_boolean.garage_test
      icon_template: >
          {% if is_state('binary_sensor.garagentorsensor_contact', 'on') %} mdi:garage-open
          {% else %} mdi:garage
          {% endif %}

Home Assistant: Schritt für Schritt – MQTT-Sensor mit Hilfe des MQTT-Explorer einrichten.

Entdecken Sie, wie Sie mithilfe des MQTT-Explorers einen MQTT-Sensor einrichten können. Erfahren Sie, wie Sie MQTT-Werte von EVCC (Electric Vehicle Charge Controller) als Beispiel integrieren, überwachen und steuern können. Tauchen Sie ein in die Welt des MQTT und bringen Sie Ihr Projekt auf das nächste Level!

Links aus dem Video:

MQTT Explorer Add-On: https://github.com/GollumDom/addon-repository

MQTT Sensor Integration: https://www.home-assistant.io/integrations/sensor.mqtt/

MQTT Select Platform: https://www.home-assistant.io/integrations/select.mqtt/

Die Basisinstallation von evcc erkläre ich in diesem Video:

Hinweis ! Damit evcc die Daten über MQTT exportiert müsst ihr euren Broker in der evcc.yaml eintragen.

# mqtt message broker
mqtt:
   broker: 192.168.101.79:1883 # euer MQTT-Broker mit Port
   topic: evcc # das Topic lasst ihr so stehen, dann findet ihr im MQTT-Explorer alles unter evcc
  # user: euer_user
  # password: euer_kennwort

Code aus der Configuration.yaml:

mqtt:
  sensor:
    - name: "PV Leistung"
      unique_id: evcc_pv_leistung_w
      state_topic: "evcc/site/pvPower"
      value_template: "{{value | round(1) }}"
      unit_of_measurement: "W"
      availability_topic: "evcc/status"
  select:
      state_topic: "evcc/loadpoints/1/mode"
      command_topic: "evcc/loadpoints/1/mode/set"
      name: "Charge Mode"
      unique_id: evcc_charge_mode_select
      options:
        - "off"
        - "now"
        - "minpv"
        - "pv"

Hinweis von @richyholzy4120 : Wenn man mehrere Ladestationen hat , dann sollte vor dem state_topic ein – gesetzt werden.

Hinweis von meiner Seite, das kann auch schon bei einer Ladestation so gemacht werden. Durch das “-” vor dem state_topic lassen sich mehrere select Sensoren anlegen. Die Variante von @richyholzy4120 ist somit durchgängiger !

mqtt:
  select:
    - state_topic: "evcc/loadpoints/1/mode"
      command_topic: "evcc/loadpoints/1/mode/set"
      name: "Charge Mode"
      unique_id: evcc_charge_mode_select
      options:
        - "off"
        - "now"
        - "minpv"
        - "pv"

Home Assistant und Alexa Media Player, so gelingt die Installation 2024

Erlebe die Synergie zwischen Home Assistant und dem Alexa Media Player für eine nahtlose Integration in Deinem Smart Home. Entdecke, wie Du mithilfe dieser Technologien Deine Heimautomatisierung optimieren und Informationen mit Leichtigkeit wiedergeben lassen kannst.

Hier findest du noch weitere Informationen zur Integration:

Configuration · alandtse/alexa_media_player Wiki · GitHub

Beispiel Template für die Ausgabe eines Temperatursensors. Hier kann natürlich jeder Status eines Sensors ausgegeben werden, wenn man die Entität austauscht.

Die Temperatur im Studio ist {{ states.sensor.temperatursensor_buro_temperature.state }} Grad

Home Assistant: Dokumentmanagement (DMS ) Paperless NGX , für den perfekten Workflow !

Entdecke die Möglichkeit, dein Zuhause zu organisieren und effizienter zu gestalten – mit dem Paperless NGX Home Assistant Add-On! Tauche ein in die Welt der digitalen Dokumentenverwaltung und erfahre in diesem Video, wie du das Add-On mühelos installierst. Ich begleite dich durch die notwendigen Schritte und du kannst die Vorteile eines fortschrittlichen Dokumentenmanagementsystems kennenlernen. Nie wieder mühsames Suchen nach physischen Dokumenten – mit Paperless NGX hast du alle wichtigen Unterlagen digital griffbereit. Erlebe die Freiheit, von überall aus auf deine Dateien zuzugreifen, und genieße die Sicherheit einer zuverlässigen und gut organisierten Dokumentenstruktur.

Das sind die Labels und der Scanner, den ich verwende *:

Links aus dem Video:

Paperless NGX Add – on : https://community.home-assistant.io/t/benoit-anastay-add-on-paperless-ngx/664789

Github Seite mit Doku vom Entwickler: https://github.com/BenoitAnastay/paperless-home-assistant-addon/blob/e8e07c0b719f8e74a604b34a821c8ff37194c619/paperless-ngx/DOCS.md#configuration

Avery Zweckform QR-Code Generator von Tobias L. Meier: https://tobiasmaier.info/asn-qr-code-label-generator/

So sieht unser Workflow aus:

Add-On Konfiguration:

filename: "{created_year}/{correspondent}/{title}"
language: deu
language_packages: eng deu fra ita spa
default_superuser:
  username: admin
  email: admin@mail.de
  password: admin
timezone: Europe/Berlin
ssl: false
certfile: fullchain.pem
keyfile: privkey.pem
barcodes_enabled: true
barcodes_asn: true

Home Assistant : Frigate NVR installieren für ultimative Sicherheit und tolle Automatisierungen!

Tauche ein in die Welt der Sicherheit! Erfahre in diesem Video, wie du Frigate NVR problemlos unter Home Assistant einrichtest. Von der nahtlosen Integration bis zur stylischen Lovelace Card – alles, was du für ultimativen Schutz brauchst! 🛡️🏡

Hier kannst du den Coral AI beziehen*:

Google Coral USB Edge TPU ML Beschleunigungscoprozessor für Raspberry Pi und andere eingebettete Einzelboard-Computer
  • Spezifikationen: Arm 32-Bit Cortex-M0+ Mikroprozessor (MCU): bis zu 32 MHz max 16 KB Flash-Speicher mit ECC 2 KB RAM-Anschlüsse: USB 3.1 (Gen 1) Port und Kabel (SuperSpeed, 5 Gb/s Übertragungsgeschwindigkeit)

Links aus dem Video:

Frigate: Introduction | Frigate

Coral AI: Get started with the USB Accelerator | Coral

Hinweis:

Bitte beachtet, dass man Frigate NVR nicht auf einem Raspberry Pi mit Micro SD Karte laufen lassen sollte. Durch die häufigen Schreib-/Lesezyklen kann es zu einem schnellen Defekt der Dateisystems kommen. Verwendet hier besser eine SSD !

Für die Verwendung des Coral AI Stick mit einem Raspberry PI, empfehle ich einen separat versorgten USB 3.0 HUB.

Netzwerkspeicher

Für das dauerhafte Recording empfehle ich die Verwendung eines Netzwerkspeichers. Die Einrichtung unter Home Assistant für die Verwendung eines Netzwerkspeichers ist hier beschrieben:

HA Network Storage | Frigate

Wie sich grundsätzlich unter HA ein Netzwerkspeicher z.B. über eine Synology NAS Freigabe einrichten lässt, habe ich in dem Video Backup & Restore erklärt. Hier wäre lediglich als Medium -> Media zu wählen und nicht Backup. Die Media Freigabe muss unter Home Assistant “frigate” genannt werden.

Konfigurationen:

Hier findest du die frigate.yml :

mqtt:
  enabled: True
  host: 172.16.0.14
  user: smarthome
  password: smarthome
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 1


# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu 

birdseye:
  enabled: True
  restream: True
  mode: objects

objects:
  track:
    - person
    - car
  filters:
    person:
      min_area: 5000
      max_area: 100000


go2rtc:
  streams:
    Treppenhaus: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
      - "ffmpeg:rtsp_cam#audio=opus"
    Treppenhaus_sub: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
      - "ffmpeg:rtsp_cam#audio=opus"

cameras:
  Treppenhaus_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Treppenhaus?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Treppenhaus_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 1280 
      height: 720 
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        days: 7
      events:
        retain: 
          default: 14

Möchtest du weitere Kameras einbinden, habe ich dir das Beispiel frigate.yml um eine weitere Beispielkamera erweitert ( Beispiel für eine Reolink Kamera z.B. 410, 520, 520a, 511wa). Dieser Vorgang kann für die Anzahl eurer Kameras wiederholt werden. Achtet darauf, dass jede Kamera auch Kapazität von eurem Host-System in Anspruch nimmt.

Weitere Konfigurationsbeispiele für Kameras findest du an dieser Stelle auf der Frigate Dokumentation:

Camera Specific Configurations | Frigate

Beispiel für die Erweiterung um eine weitere Kamera.

mqtt:
  enabled: True
  host: 172.16.0.14
  user: smarthome
  password: smarthome
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 1


# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu 

birdseye:
  enabled: True
  restream: True
  mode: objects

objects:
  track:
    - person
    - car
  filters:
    person:
      min_area: 5000
      max_area: 100000


go2rtc:
  streams:
    Treppenhaus: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
      - "ffmpeg:rtsp_cam#audio=opus"
    Treppenhaus_sub: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main
      - "ffmpeg:rtsp_cam#audio=opus"
    zweite_Kamera: 
      - "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus"
    zweite_Kamera_sub: 
      - "ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password"


cameras:
  Treppenhaus_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Treppenhaus?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Treppenhaus_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 1280 
      height: 720 
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        days: 7
      events:
        retain: 
          default: 14

  zweite_Kamera_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/zweite_Kamera?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/zweite_Kamera_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 1280 
      height: 720 
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        days: 7
      events:
        retain: 
          default: 14
  

Möchtest du den Coral AI verwenden, dann setze an der Stelle Detectors folgende Zeilen ein und ersetzte damit die Zeilen mit dem CPU-Detector:

detectors:
  coral:
    type: edgetpu
    device: usb

Coral Edge TPU Proxmox :

Um den Coral AI unter Proxmox durchzureichen, führe folgende Zeilen in deiner PVE-Node Shell aus (nicht in der VM !) :

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get update
sudo apt-get install libedgetpu1-std

Nun kannst du in deiner VM den USB Edge TPU Adapter wie folgt durchreichen:

Achte dabei darauf ,dass du den Port wählst, wo der Coral AI Stick eingesteckt ist. Bei mir wurde “Ausgesteckt” angezeigt. Lass dich davon nicht irritieren, wenn das bei dir ebenfalls so sein sollte.

Für die Verwendung der TPU musst du zwingend einen USB 3.x Port verwenden.

Zuletzt muss die Home Assistant VM neu gestartet werden und die Änderung in der friagte.yml durchgeführt werden ( siehe oben ).

In eigener Sache:

Frigate bietet noch viele weitere Möglichkeiten. Diese lassen sich nicht alle in nur einem Video darlegen. Falls dich Frigate mit Home Assistant interessiert, kannst du mir gerne in den Kommentaren des Videos auf Youtube eine Nachricht hinterlassen. Wenn genügend Interesse besteht, werde ich gerne noch weitere Features von Frigate vorstellen ( Masken, Zonen, Beispielautomatisierungen etc. ) .

Home Assistant Templates: Startklar ins Smart Home mit einem einfachen Einstieg!

In diesem Video erlebt ihr den einfachen Einstieg in die Nutzung von Home Assistant Templates. Wir gehen Schritt für Schritt durch die Grundlagen von Templates bis zu einer unkomplizierten Beispielautomatisierung. Dies schafft eine solide Basis für zahlreiche weitere Automatisierungen mit Templates. Entdeckt jetzt die Welt der Smart Home Automatisierung!

Link zur Dokumentation von Home Assistant Templates: https://www.home-assistant.io/docs/configuration/templating/

Template Beispiel Temperatursensoren:

{{ (float(states.sensor.temperatur_mia_temperature.state) + float(states.sensor.temperatur_mia_temperature.state) ) /2  }}

Template Beispiel Liste einer Gruppe mit allen ausgeschalteten Lichtern:

{{ expand('light.gruppe_lichter_template') | selectattr("state","eq","off") | map(attribute="entity_id") | list }}

Template Beispiel Liste von allen Lichtern die eingeschaltet sind:

{{ states.light | selectattr("state","eq","on") | map(attribute="entity_id") | list }}

Template Beispiel Anzahl aller Lichter die eingeschaltet sind:

{{ states.light | selectattr("state","eq","on") | map(attribute="entity_id") | list | count }}

Komplette Automatisierung aus dem Video:

alias: Video_Template_Beispiel
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.entfernung_tobias_von_daheim
    below: 0.2
condition: []
action:
  - service: light.turn_on
    data:
      entity_id: >-
        {{ expand('light.gruppe_lichter_template') |
        selectattr("state","eq","off") | map(attribute="entity_id") | list }}
mode: single

Template Beispiel Distanz Device Tracker zum Haus:

{{ distance('device_tracker.iphone_von_tobias_4') | round(2)}}