­čÜÇ Enth├╝lle das Geheimnis: Home Assistant + ESPHome f├╝r pr├Ązise Wassertankmessung im Camper! ­čĺž­čîč”

Entdecke in diesem Video, wie du mit Home Assistant und ESPHome den F├╝llstand deines Wassertanks pr├Ązise messen kannst ÔÇô egal ob im Camper, Wohnmobil oder sogar Zuhause! ­čÜÉ­čĺž Wir zeigen dir Schritt f├╝r Schritt, wie du mit einfachen Mitteln und ohne Vorkenntnisse in die Welt von Home Assistant und ESPHome einsteigst. Erfahre, wie du die Daten deines Wassertanks ├╝berwachen und in Echtzeit auslesen kannst. Perfekt f├╝r Anf├Ąnger und alle Technikbegeisterten! ­čîč

­čôî Inhalt:

1. Einf├╝hrung in Home Assistant und ESPHome

2. Notwendige Hardware und Software

3. Schritt-f├╝r-Schritt-Anleitung zur Installation und Konfiguration

4. Live-Demo: Wassertankf├╝llstand im Camper ermitteln

5. Tipps und Tricks zur Optimierung und Anwendung auch in anderen Bereichen

6. Verpasse nicht diese einfache und effektive L├Âsung zur F├╝llstandsmessung. Abonniere jetzt und bleibe auf dem Laufenden! ­čĹŹ­čöö Wenn du weitere Anpassungen oder Ideen hast, lass es mich wissen! ­čśŐ­čĹŹ

Wichtiger Hinweis:

Hallo Zusammen, kurzer Hinweis und viele Dank an @bernhardpasman157 ­čĹŹ

Im Video habe ich ein paarmal vom Widerstand des Kondensators gesprochen, was nat├╝rlich Bl├Âdsinn ist. Ein Kodensator hat eine Kapazit├Ąt­čśŐ

Links in diesem Video:

Web-Flash ESPhome : https://web.esphome.io

Doku ESPhome : https://esphome.io

Icons: https://pictogrammers.com

St├╝ckliste* :

St├╝ckzahlArtikelAmazon LinkBeschreibung
1M5 Stack Atom Litehttps://amzn.to/4cfTOg0ESP Controller
1Votronic Tankelektrode 15-50 Khttps://amzn.to/3KAzlqeVotronic Tankelektrode f├╝r Tanks von 15-50cm
1Votronic Tankelektrode 12-24 Khttps://amzn.to/3VgGtwRVotronic Tankelektrode f├╝r Tanks von 12-24cm
1DC/DC Buck Converter 8-32V zu 5Vhttps://amzn.to/3RkiKusKonvertiert die Spannung auf konstante 5 V
1Jumper Kabel Sethttps://amzn.to/3XihoEtZur Verbindung der Komponenten
1WAGO Verbindungsklemmen Sethttps://amzn.to/4bRPdRmZur Verbindung der Komponenten
14-42 mm Stufenbohrerhttps://amzn.to/45nE6x8Stufenbohrer/Kegelbohrer f├╝r die Bohrung im Tank

Hinweis: Den M5 Stack Atom Lite kann man bei anderen Quellen g├╝nstiger bekommen. Sucht danach im Internet , falls ihr meinen Kanal unterst├╝tzen wollt, freue ich mich nat├╝rlich aber auch ├╝ber einen Einkauf ├╝ber den Amazon Link.

Die Verdahtung l├Ąsst sich relativ einfach gestalten. Wer es etwas professioneller m├Âchte, verwendet noch PinHeader und l├Âtet sich die Kabel zusammen ( entweder auf einer Platine oder direkt). Mir ging es hier darum euch eine L├Âsung zu zeigen, die man auch ohne L├Âtkenntnisse umsetzen kann.

Sollte Interesse an einer fertigen Platinen mit Anschlussklemmen bestehen, so k├Ânnt ihr mir das gerne auf meinem Discord Server smart home & more Discord Server mitteilen. Sollte es gen├╝gend Anfragen geben, so werden wir gerne eine Platine daf├╝r erstellen.

Code ESPHome ( ersetzt bei euch nur den Teil unter “sensor:” , die anderen Elemente werden automatisch angelegt ):

esphome:
  name: fuellstand-camper
  friendly_name: Fuellstand_Camper

esp32:
  board: m5stack-atom
  framework:
    type: arduino

# Example configuration entry
sensor:
  - platform: adc
    pin: GPIO33
    name: "F├╝llstand Frischwasser"
    update_interval: 1s
    attenuation: auto
    unit_of_measurement: "%"
    icon: mdi:water-pump
    # Example filters:
    filters:
      - calibrate_linear:
          - 0.0 -> 0.0
          - 1.1 -> 50.0
          - 2.2 -> 100.0
      - median:
          window_size: 5
          send_every: 5
          send_first_at: 1

  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy # Reports the WiFi signal strength in %
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"
    device_class: ""

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "junLQaHVpQKVMtpZx04qQwpLx6qbZLail8/PWfQsefw="

ota:
  password: "1520ab9d0c8fea0f99fd36dceafb902e"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.101.156
    gateway: 192.168.101.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Fuellstand-Camper"
    password: "gE2KT8jGjALI"

captive_portal:
    

Solltet ihr nicht die Buchsenleiste verwenden wollen, so steht euch auch der Steckanschluss zur Verf├╝gung. Geeignete Kabel k├Ânnt ihr hier z.B. beziehen. Eine Seite vom Kabel m├╝sstet ihr dann abschneiden und die Kabelenden abisolieren.

Im Code muss jetzt noch diese Zeile ver├Ąndert werden:

  #  pin: GPIO33 # wir ├Ąndern GPIO33 in GPIO32
     pin: GPIO22 # damit nutzen wir den Steckanschluss am Atom Lite

Grunds├Ątzlich k├Ânnt ihr dar├╝ber auch eine zweite Sonde anschlie├čen, z.B. f├╝r den F├╝llstand eures Abwassers. Dazu erg├Ąnzt unter den Sensoren lediglich einen weiteren Sensor und nutzt den zweiten ADC Eingang (GPIO22) f├╝r einen weiteren Sensor.

  - platform: adc
    pin: GPIO32
    name: "F├╝llstand Abwasser"
    update_interval: 1s
    attenuation: auto
    unit_of_measurement: "%"
    icon: mdi:water-pump
    # Example filters:
    filters:
      - calibrate_linear:
          - 0.0 -> 0.0
          - 1.1 -> 50.0
          - 2.2 -> 100.0
      - median:
          window_size: 5
          send_every: 5
          send_first_at: 1

F├╝r die Visualisierung empfehle ich euch dieses Video aus meiner Reihe “Smarter-Camper” anzuschauen:

Code der gezeigten Bildelemente Kartenkonfiguration:

type: picture-elements
elements:
  - type: state-icon
    entity: binary_sensor.fenster_hinten
    style:
      top: 43%
      left: 4%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_hinten_rechts
    style:
      top: 85%
      left: 21%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_mitte_rechts
    style:
      top: 85%
      left: 48%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_rechts_unten
    style:
      top: 85%
      left: 73%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_rechts_oben
    style:
      top: 85%
      left: 78%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_hinten_links
    style:
      top: 10%
      left: 21%
      '--mdc-icon-size': 100%
      background_colour: green
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_links
    style:
      top: 10%
      left: 60%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_hinten
    style:
      top: 48%
      left: 22%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_mitte
    style:
      top: 48%
      left: 48%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_vorne
    style:
      top: 48%
      left: 74%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_mitte_links
    style:
      top: 29%
      left: 41%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.tuer
    style:
      top: 73%
      left: 36%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: input_boolean.unterwegs
    tap_action:
      action: toggle
    style:
      top: 88%
      left: 34%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-badge
    entity: sensor.fuellstand_camper_f_llstand_frischwasser
    name: F├╝llstand
    show_name: true
    style:
      '--label-badge-background-color': blue
      '--ha-label-badge-label-color': white
      '--label-badge-text-color': white
      '--label-badge-red': black
      '--ha-label-badge-title-width': 150px
      top: 70%
      left: 94%
      color: blue
image: /local/images/510TK.png

Die gezeigte Automatisierung:

Ich habe den Code anders als im Video noch erweitert, so dass auch der F├╝llstand in Prozent mit ausgeben wird.

alias: Wasserstand ist niedrig
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.fuellstand_camper_f_llstand_frischwasser
    below: 20
condition: []
action:
  - service: notify.notify
    metadata: {}
    data:
      message: >-
        Achtung: Wasserstand ist bei
        {{states.sensor.fuellstand_camper_f_llstand_frischwasser.state}}% .
        Bitte auff├╝llen! 
      title: Camper Info!
mode: single

F├╝r den Einbau habe ich den Buck Converter und den M5Stack mit 3M Klebeband an der Wand unter der Sitzleiste neben dem Wassertank angebracht. Dort st├Ârt er nicht und ist im Bedarfsfall aber noch zug├Ąnglich.

Weitere Videos zum Thema Camper findest du in folgender Playlist:

(Fernzugriff, Fenstersensoren, Alarme, etc.. )

­čöŹ Home Assistant: Deine Lieblingskan├Ąle im Blick! ­čÄą

In diesem Video zeige ich dir, wie du mit Home Assistant deine Lieblings-YouTube-Kan├Ąle im Blick beh├Ąltst und du automatisch benachrichtigt wirst, wenn neue Videos ver├Âffentlicht werden. Dabei verwenden wir Templates, For-Schleifen und erstellen sogar ein Pie-Chart f├╝r die Creator.

­čöŹ Inhalte des Videos:

1. YouTube-Tracking: Wir setzen Sensoren ein, um die Ver├Âffentlichungen deiner Lieblingskan├Ąle zu ├╝berwachen.

2. Automatisierung mit Notification: Du erh├Ąltst Benachrichtigungen, sobald neue Videos verf├╝gbar sind.

3. For-Schleife und Variablen in Templates: Wir nutzen diese leistungsstarken Funktionen, um unsere Automatisierung zu optimieren.

4. Pie-Chart f├╝r die Creator: Wir visualisieren die Daten mit einem schicken Diagramm. Bleib auf dem Laufenden und abonniere meinen Kanal!

­čÜÇ Wenn du weitere Anpassungen oder Ideen hast, lass es mich wissen! ­čśŐ­čĹŹ

In meinem Shop findest du Produkte * aus meinen Videos und andere interessante Dinge

Die verwendeten Integrationen lassen sich ├╝ber HACS installieren. Wie du HACS installierst, erf├Ąhrst du in diesem Video:

Weitere Links:

Home Assistant: Wie du HACS installierst (in 3 Minuten ) ÔÇô smarthome & more (smarthomeundmore.de)

Den verwendeten Channel ID Finder, kannst du hier finden ­čÖé

So kann dein Ergebnis dann aussehen :

Konfiguration der Youtube Sensoren in der configuration.yaml:

sensor: 
  - platform: youtube
    channel_id: UCd-TcFifNC20TrnEiESNumw #smart home & more
    
  - platform: youtube
    channel_id: UCkwdS6Kc2yibIyjM04A0bFQ #smarthomeyourself

  - platform: youtube
    channel_id: UC6tOdC66bmw1PTYZ9Mxup0g #SteuerdeinLeben
    
  - platform: youtube
    channel_id: UCiU--5PKQOMdfMTG7dTKc7g #Simon42
    
  - platform: youtube
    channel_id: UC9GhECy9pXpEnzedm_w07wA #Smartzeug

  - platform: youtube
    channel_id: UCNvXHh8fiVdYo4NkbHph-9w #Smartrev

  - platform: youtube
    channel_id: UCYh0OOdITnYFgkO_vjuvupA #verdrahtet
    
  - platform: youtube
    channel_id: UCe06G4hqXjUlYhB-rDmns4g #Tristan

  - platform: youtube
    channel_id: UC9rJWdu8-jyyxo73DPevpKg #Smartlivenet

  - platform: youtube
    channel_id: UCvgSyOl0NdnpBEYF7fX7Y_A #The Alkly

  - platform: youtube
    channel_id: UCUSC1_KwZp_6GZ8IyIW2yRQ #Smarthomebastler

  - platform: youtube
    channel_id: UCPpzG1lA071gQegxfKoKiqQ #Meine digitale Welt

Konfiguration der “published” Sensoren in der configuration.yaml:

  - platform: attributes
    friendly_name: "Youtube Views"
    attribute: views
    entities:
     - sensor.smart_home_more
     - sensor.smarthome_yourself
     - sensor.steuer_dein_leben
     - sensor.simon42
     - sensor.smartzeug
     - sensor.smartrev
     - sensor.verdrahtet
     - sensor.tristan_s_smartes_heim
     - sensor.smart_live_net
     - sensor.alkly
     - sensor.smart_home_bastler
     - sensor.meinedigitalewelt

Automatisierung aus dem Video:

alias: Notification, neues YT Video meiner Kan├Ąle verf├╝gbar
description: >-
  Immer, wenn eines der Kan├Ąle ein neues Video bringt, bekomme ich eine
  Notifikation
trigger:
  - platform: state
    entity_id:
      - sensor.smart_home_more
      - sensor.smarthome_yourself
      - sensor.steuer_dein_leben
      - sensor.simon42
      - sensor.smartrev
      - sensor.smartzeug
      - sensor.verdrahtet
      - sensor.tristan_s_smartes_heim
      - sensor.smart_live_net
      - sensor.alkly
      - sensor.smart_home_bastler
      - sensor.meinedigitalewelt
    attribute: url
    for:
      hours: 0
      minutes: 1
      seconds: 0
condition: []
action:
  - service: notify.notify
    metadata: {}
    data:
      message: >-
        {% set buffer = namespace(videos=[]) %}  {% for sensor in [            
        states.sensor.smart_home_more_published,            
        states.sensor.smarthome_yourself_published,            
        states.sensor.steuer_dein_leben_published,
        states.sensor.tristan_s_smartes_heim_published,
        states.sensor.smart_live_net_published,  states.sensor.alkly_published,
        states.sensor.smart_home_bastler_published,
        states.sensor.smartrev_published,     
        states.sensor.smartzeug_published, states.sensor.verdrahtet_published, 
        states.sensor.meinedigitalewelt_published,
        states.sensor.simon42_published     ] %}       {% if
        strptime(sensor.state,     '%Y-%m-%dT%H:%M:%S+00:00').date() ==
        now().date() %}             {% set video_name =
        sensor.entity_id.split('.')[1].replace('_published', '')     %}        
        {% set buffer.videos = buffer.videos + [video_name] %}       {%    
        endif %}     {% endfor %}      {% if buffer.videos %}  Neues Video
        ver├Âffentlicht von: {{'\n'}}{{ buffer.videos | join(',\n') }}     {%
        endif %}
mode: single

Bonusmaterial f├╝r Creator ­čÖé und Andere …

Attribute “views” in der Configuration.yaml

  - platform: attributes
    friendly_name: "Youtube Ver├Âffentlicht"
    attribute: published
    entities:
     - sensor.smart_home_more
     - sensor.smarthome_yourself
     - sensor.steuer_dein_leben
     - sensor.simon42
     - sensor.smartzeug
     - sensor.smartrev
     - sensor.verdrahtet
     - sensor.tristan_s_smartes_heim
     - sensor.smart_live_net
     - sensor.alkly
     - sensor.smart_home_bastler
     - sensor.meinedigitalewelt

YAML Code der Apex Chart Card

type: custom:apexcharts-card
apex_config:
  chart:
    height: 350px
chart_type: pie
header:
  show: true
  show_states: true
  colorize_states: true
  title: Youtube Views der letzen Videos
series:
  - entity: sensor.smart_home_more_views
    name: smart home & more
    type: column
  - entity: sensor.simon42_views
    name: simon42
    type: column
  - entity: sensor.smarthome_yourself_views
    name: smarthome yourself
    type: column
  - entity: sensor.steuer_dein_leben_views
    name: Steuer dein Leben
    type: column
  - entity: sensor.smartrev_views
    name: Smart Rev
    type: column
  - entity: sensor.smartzeug_views
    name: Smartzeug
    type: column
  - entity: sensor.verdrahtet_views
    name: Verdrahtet
    type: column
  - entity: sensor.tristan_s_smartes_heim_views
    name: Tristans Smartes Heim
    type: column
  - entity: sensor.smart_live_net_views
    name: SmartLive.Net
    type: column
  - entity: sensor.alkly_views
    name: The Alkly
    type: column
  - entity: sensor.smart_home_bastler_views
    name: Smart Home Basler
    type: column
  - entity: sensor.meinedigitalewelt_views
    name: Meine digitale Welt
    type: column

YAML Code des gesamten Dashbords, mit zwei Vertikalen Stapeln

  - title: Youtube
    path: youtube
    icon: mdi:youtube
    type: panel
    cards:
      - type: horizontal-stack
        cards:
          - type: vertical-stack
            cards:
              - type: tile
                entity: sensor.smart_home_more
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.simon42
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.smartrev
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.smartzeug
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.verdrahtet
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.smart_home_bastler
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
          - type: vertical-stack
            cards:
              - type: tile
                entity: sensor.steuer_dein_leben
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.smarthome_yourself
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.tristan_s_smartes_heim
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.smart_live_net
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: tile
                entity: sensor.alkly
                show_entity_picture: true
                vertical: true
                state_content:
                  - published
                  - state
                  - views
                  - stars
              - type: custom:apexcharts-card
                apex_config:
                  chart:
                    height: 350px
                chart_type: pie
                header:
                  show: true
                  show_states: true
                  colorize_states: true
                  title: Youtube Views der letzen Videos
                series:
                  - entity: sensor.smart_home_more_views
                    name: smart home & more
                    type: column
                  - entity: sensor.simon42_views
                    name: simon42
                    type: column
                  - entity: sensor.smarthome_yourself_views
                    name: smarthome yourself
                    type: column
                  - entity: sensor.steuer_dein_leben_views
                    name: Steuer dein Leben
                    type: column
                  - entity: sensor.smartrev_views
                    name: Smart Rev
                    type: column
                  - entity: sensor.smartzeug_views
                    name: Smartzeug
                    type: column
                  - entity: sensor.verdrahtet_views
                    name: Verdrahtet
                    type: column
                  - entity: sensor.tristan_s_smartes_heim_views
                    name: Tristans Smartes Heim
                    type: column
                  - entity: sensor.smart_live_net_views
                    name: SmartLive.Net
                    type: column
                  - entity: sensor.alkly_views
                    name: The Alkly
                    type: column
                  - entity: sensor.smart_home_bastler_views
                    name: Smart Home Basler
                    type: column
                  - entity: sensor.meinedigitalewelt_views
                    name: Meine digitale Welt
                    type: column
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle

Ich w├╝rde mich sehr ├╝ber einige Dashboards auf Basis dieses Videos freuen. Kommt dazu gerne auf meinen Discord Server https://discord.gg/tCGy3RWFwJ und teilt Eure Ideen. Vielen Dank ­čÖé

Home Assistant: Fensterstatus, Regenschutz, Einbruchwarnung f├╝r Camper/Haus (mit Floorplan)­čÜÉ

Willkommen zu unserem neuen Video! Erfahre, wie Home Assistant dein Zuhause, ob mobil oder nicht sch├╝tzt, indem es offene Fenster oder T├╝ren erkennt, und damit vor Regen warnt und Einbr├╝che verhindert! Entdecke auch unseren Camper-Floorplan und triff unseren spannenden Gast, der dir auch einen Einblick in seine L├Âsungen gibt. Verpasse nicht diese spannende Einf├╝hrung in die Welt der Smart (mobil) Home-Sicherheit!

In meinem Shop findest du auch die verwendeten Produkte * aus dem Video

Um Alarmo installieren zu k├Ânnen ben├Âtigst du HACS. Wie du HACS installierst, erf├Ąhrst du in diesem Video:

Wie du Home Assistant auf deinem Raspberry PI 4 oder 5 f├╝r z.B. deinen Camper installieren kannst, zeige ich dir in diesem kurzen Video:

Den Kanal von Daniel (smarthomeyourself) findest du hier:

Das ausf├╝hrliche Alarmo Tutorial von Daniel k├Ânnt ihr hier finden:

Vielen Dank auch an Maxx f├╝r sein tolles Berechnungstool und nat├╝rlich auch f├╝r seine Klasse Videos im Blick auf Dashboards und Flurpl├Ąnen. Schaut bei ihm gerne mal vorbei:

Position auf der Picture Elements Card berechnen! Von Pixel auf % ÔÇô Smart Home Bastler

Den Kanal von Maxx findest du hier: Kanal

Im Video zeige ich euch , wie ihr einen einfachen Flurplan erstellt. Egal ob Camper oder Haus. Hier habt ihr den Beispielcode (Bildelemente Karte) aus dem Video:

type: picture-elements
elements:
  - type: state-icon
    entity: binary_sensor.fenster_hinten
    style:
      top: 43%
      left: 4%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_hinten_rechts
    style:
      top: 85%
      left: 21%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_mitte_rechts
    style:
      top: 85%
      left: 48%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_rechts_unten
    style:
      top: 85%
      left: 73%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_rechts_oben
    style:
      top: 85%
      left: 78%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_hinten_links
    style:
      top: 10%
      left: 21%
      '--mdc-icon-size': 100%
      background_colour: green
      color: transparent
  - type: state-icon
    entity: binary_sensor.fenster_vorne_links
    style:
      top: 10%
      left: 74%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_hinten
    style:
      top: 48%
      left: 22%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_mitte
    style:
      top: 48%
      left: 48%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_vorne
    style:
      top: 48%
      left: 74%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.dachluke_mitte_links
    style:
      top: 29%
      left: 41%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: binary_sensor.tuer
    style:
      top: 73%
      left: 36%
      '--mdc-icon-size': 100%
      color: transparent
  - type: state-icon
    entity: input_boolean.unterwegs
    tap_action:
      action: toggle
    style:
      top: 88%
      left: 34%
      '--mdc-icon-size': 100%
      color: transparent
image: /local/images/510TK.png

Um die Fenster zu ├╝berwachen wurde auch eine kleine Automatisierung vorgestellt.

Den YAML Code dazu findest du hier:

alias: Benachrichtigung , wenn Fenster noch ge├Âffnet ist
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.unterwegs
    to: "on"
  - platform: time_pattern
    minutes: /30
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: binary_sensor.fenster_und_dachluken
        state: "on"
      - condition: state
        entity_id: input_boolean.unterwegs
        state: "on"
action:
  - service: notify.notify
    metadata: {}
    data:
      message: >-
        Achtung: {{ expand('binary_sensor.fenster_und_dachluken') |
        selectattr('state','eq','on') | map(attribute='name') | list | join
        (',\n') }} ist noch ge├Âffnet
mode: single

Home Assistant: EVCC-Daten zu dynamischen Strompreisen auslesen, visualisieren und damit rechnen

Verwandle dein Smart Home mit dynamischen Strompreisen! In diesem Video zeigen wir dir, wie du mit Home Assistant und EVCC nicht nur die aktuellen Strompreise ausliest, sondern auch visualisierst und clever damit rechnest. Spare bares Geld und optimiere deinen Energieverbrauch ÔÇô jetzt reinschauen und profitieren! Plus: Erfahre alles ├╝ber eine exklusive Bonusautomatisierung, die dir noch mehr Effizienz bringt! ­čĺí­čöî­čĺŞ

Wenn du mehr ├╝ber EVCC kennenlernen willst, dann findest du hier weitere n├╝tzliche Informationen.

Aus meiner Sicht ist EVCC nicht nur eine Managementsoftware f├╝r eure Wallbox und Elektroauto. Mit EVCC k├Ânnt ihr unabh├Ąngig von der Schnittstelle eures Wechselrichters, Batteriespeichers, dynamischen Stromanbieter etc… auf aufbereiteten Daten agieren und diese f├╝r tolle Automatisierungen und Visualisierungen in Home Assistant nutzen.

Um die Inhalte besser verstehen zu k├Ânnen, empfehle ich euch folgende Videos ebenfalls anzuschauen:

Hier erf├Ąhrst du in wenigen Minuten, wie man HACS installiert.
Basisinstallation der Software EVCC
In diesem Video zeige ich euch, wie man mit Home Assistant aus den Daten von EVCC MQTT Sensoren erstellt.

Links , in denen ihr weitere Informationen findet:

Restful Sensor in der Configuration.yaml

sensor:

  - platform: rest
    name: EVCC Tariff Forecast
    unique_id: evcc_tariff_forecast
    resource: http://192.168.101.3:7070/api/tariff/grid
    value_template: "{{value_json.result.rates[0].price}}"
    json_attributes:
       - result
    scan_interval: 60

Template Helfer : sensor.evcc_tibber_forecast_max_value_today

{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', now().strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt', now().strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | max }}

Template Helfer: evcc_tibber_forecast_min_value_today

{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', now().strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt', now().strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | min }}

Template Helfer: evcc_tibber_forecast_max_value_tomorrow

{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', (now() + timedelta(days=1)).strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt',(now() + timedelta(days=1)).strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | max | default(0) }}

Template Helfer: evcc_tibber_forecast_min_value_tomorrow

{{state_attr('sensor.evcc_tariff_forecast', 'result')['rates'] | selectattr('start', 'ge', (now() + timedelta(days=1)).strftime('%Y-%m-%dT00:00:00%z')) | selectattr('start','lt',(now() + timedelta(days=1)).strftime('%Y-%m-%dT23:59:59%z')) | map(attribute='price') | min| default(0) }}

F├╝r die Visualisierung habe ich die Apex Chart Card aus dem Video ein wenig optimiert. Hier findet ihr die optimierte Variante als Code Beispiel ( die n├Âtigen MQTT Sensoren aus EVCC findet ihr weiter unten ) :

Weitere Infos zum Umgang mit der Apex Chart Card, habe ich in diesem Video erkl├Ąrt:

Forecastdaten mit Apex Chart Card visualisieren.
type: custom:apexcharts-card
apex_config:
  chart:
    height: 268px
all_series_config:
  unit: kWh
header:
  title: Evcc Tibber Forecast
  show: true
  standard_format: true
  show_states: true
  colorize_states: true
graph_span: 2d
span:
  start: day
  offset: '+0'
now:
  show: true
  label: Jetzt
yaxis:
  - id: kwh
    min: 0
    apex_config:
      tickAmount: 5
  - id: header
    show: false
series:
  - entity: sensor.evcc_tariff_forecast
    yaxis_id: kwh
    type: area
    name: Forecast heute
    color: green
    data_generator: >
      let now = new Date().getTime();

      let rates = entity.attributes.result.rates;

      let filteredRates = rates.filter(rate => new Date(rate["start"]).getTime()
      <= now);

      return filteredRates.map(rate => [new Date(rate["start"]).getTime(),
      rate["price"]]);
    show:
      legend_value: false
      in_header: false
    stroke_width: 4
    float_precision: 2
    extend_to: false
  - entity: sensor.evcc_tariff_forecast
    yaxis_id: kwh
    type: area
    name: Forecast heute (nach Jetzt)
    color: yellow
    data_generator: >
      let now = new Date().getTime()- 3600000;

      let rates = entity.attributes.result.rates;

      let filteredRates = rates.filter(rate => new Date(rate["start"]).getTime()
      > now);

      return filteredRates.map(rate => [new Date(rate["start"]).getTime(),
      rate["price"]]);
    show:
      legend_value: false
      in_header: false
    stroke_width: 4
    float_precision: 2
    extend_to: false
  - entity: sensor.evcc_tariff_grid
    color: green
    yaxis_id: header
    name: Aktueller Preis
    unit: ' ÔéČ '
    float_precision: 2
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.evcc_tibber_forecast_min_value_today
    color: yellow
    yaxis_id: header
    name: Min(heute)
    unit: ' ÔéČ '
    float_precision: 2
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.evcc_tibber_forecast_max_value_today
    color: yellow
    yaxis_id: header
    name: Max(heute)
    unit: ' ÔéČ '
    float_precision: 2
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.evcc_tibber_forecast_min_value_tomorrow
    color: yellow
    yaxis_id: header
    name: Min(morgen)
    unit: ' ÔéČ '
    float_precision: 2
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.evcc_tibber_forecast_max_value_tomorrow
    color: yellow
    yaxis_id: header
    name: Max(morgen)
    unit: ' ÔéČ '
    float_precision: 2
    show:
      legend_value: true
      in_header: true
      in_chart: false

Alle diese Daten habe ich auch aus EVCC extrahiert. Hier findet ihr die n├Âtigen MQTT-Sensoren:

mqtt: 

  sensor:
   - name: "EVCC Grid Power"
     unique_id: evcc_grid_power
     state_topic: "evcc/site/gridPower"
     unit_of_measurement: "W"
     availability_topic: "evcc/status"
     
   - name: "EVCC PV Power"
     unique_id: evcc_pv_power
     state_topic: "evcc/site/pvPower"
     #value_template: "{{ value | round(1) }}"
     unit_of_measurement: "W"
     availability_topic: "evcc/status"
     
   - name: "EVCC Tariff Grid"
     unique_id: evcc_tariff_grid
     state_topic: "evcc/site/tariffGrid"
     unit_of_measurement: "EUR/kWh"
     availability_topic: "evcc/status"

   - name: "EVCC Tariff Feed In"
     unique_id: 3bd64d9d-0e8d-41ad-9db3-b0a4774120c1
     state_topic: "evcc/site/tariffFeedIn"
     unit_of_measurement: "EUR/kWh"
     availability_topic: "evcc/status"
     
   - name: "EVCC geladen an Wallbox"
     unique_id: evcc_geladen_an_Wallbox
     state_topic: "evcc/site/statistics/total/chargedKWh"
     unit_of_measurement: "kWh"
     availability_topic: "evcc/status"
     device_class: energy
     state_class: total_increasing

   - name: "EVCC Hausverbrauch"
     unique_id: evcc_hausverbrauch
     state_topic: "evcc/site/homePower"
     unit_of_measurement: "W"
     availability_topic: "evcc/status"
     
   - name: "EVCC Battery Power"
     unique_id: evcc_battery_Power
     state_topic: "evcc/site/batteryPower"
     unit_of_measurement: "W"
     availability_topic: "evcc/status"

Bonus shell_command Sensor f├╝r das Deaktivieren der EVCC Batteriemanagement Funktion ├╝ber die REST API von EVCC in der Configuration.yaml

shell_command:
  batterie_aus: curl -X POST http://192.168.101.3:7070/api/batterydischargecontrol/false
  batterie_an: curl -X POST http://192.168.101.3:7070/api/batterydischargecontrol/true

Automatisierung , um bei sehr g├╝nstigem Strompreis ( Preis liegt unter der Einspeiseverg├╝tung) den Batteriespeicher zu laden:

alias: Speicher Laden und abschalten, da so g├╝nstiger
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.evcc_tariff_grid
    below: sensor.evcc_tariff_feed_in
    id: Es ist g├╝nstiger aus dem Netz zu beziehen
  - platform: numeric_state
    entity_id:
      - sensor.evcc_tariff_grid
    id: Es ist teurer aus dem Netz zu beziehen
    above: sensor.evcc_tariff_feed_in
  - platform: numeric_state
    entity_id:
      - sensor.evcc_battery_soc
    above: 99
    id: Speicher hat 100 % erreicht
condition:
  - condition: time
    after: "06:00:00"
    before: "20:00:00"
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Es ist g├╝nstiger aus dem Netz zu beziehen
        sequence:
          - service: shell_command.batterie_aus
            metadata: {}
            data: {}
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: select
            entity_id: 6427b7e3fd03320c47261c2767cc0c41
            type: select_option
            option: Charge from Solar Power and Grid
          - delay:
              hours: 0
              minutes: 0
              seconds: 10
              milliseconds: 0
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: number
            entity_id: cedb1c19907bf5f26d82807c7a46b72e
            type: set_value
            value: 36000
      - conditions:
          - condition: trigger
            id:
              - Es ist teurer aus dem Netz zu beziehen
        sequence:
          - service: shell_command.batterie_an
            metadata: {}
            data: {}
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: select
            entity_id: 6427b7e3fd03320c47261c2767cc0c41
            type: select_option
            option: Maximize Self Consumption
          - delay:
              hours: 0
              minutes: 0
              seconds: 10
              milliseconds: 0
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: number
            entity_id: cedb1c19907bf5f26d82807c7a46b72e
            type: set_value
            value: 3600
      - conditions:
          - condition: and
            conditions:
              - condition: trigger
                id:
                  - Speicher hat 100 % erreicht
              - condition: numeric_state
                entity_id: sensor.evcc_tariff_grid
                below: sensor.evcc_tariff_feed_in
        sequence:
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: select
            entity_id: 6427b7e3fd03320c47261c2767cc0c41
            type: select_option
            option: Solar Power Only (Off)
          - delay:
              hours: 0
              minutes: 0
              seconds: 10
              milliseconds: 0
          - device_id: 1659e926aef842a56f4fc8960bf10ca1
            domain: number
            entity_id: cedb1c19907bf5f26d82807c7a46b72e
            type: set_value
            value: 36000
mode: single

Viel Spa├č ­čÖé

Wenn ihr ebenfalls noch Automatisierungsideen oder L├Âsungen in diesem Zusammenhang habt, kommt gerne auf meinen Discord Server und pr├Ąsentiert dort eure L├Âsung.

Home Assistant: Der ultimative Fernzugriff f├╝r dein Home Assistant und mehr !

Entdecke die ultimative L├Âsung f├╝r sichere Verbindungen zu deinem Home Assistant! In diesem Video zeige ich dir, wie du mithilfe von Wireguard auf einem V-Server in der Cloud eine absolut sichere Verbindung herstellen kannst. Egal, ob du IPV4, IPV6, DSLite verwendest oder von unterwegs aus zugreifen m├Âchtest – dieser Guide deckt alle Szenarien ab. Ob dein Home Assistant sich in einem Camper, Boot oder zu Hause befindet, diese Methode erm├Âglicht nicht nur einen direkten Zugriff, sondern auch die Verbindung zu allen anderen Ger├Ąten in deinem Netzwerk. Erlebe die Freiheit und Sicherheit einer Wireguard VPN V-Server Variante f├╝r dein Smart Home Setup. Schlie├če dich uns an und entdecke, wie einfach es sein kann, deine Verbindungen zu sch├╝tzen und gleichzeitig volle Kontrolle ├╝ber dein Zuhause zu behalten!

Firmware des Mango Routers:

GL.iNet download center (gl-inet.com)

Den Router und auch andere GliNet Router mit mehr Leistung, findest du in meinem Shop * :

V-Server Konsolen Befehle:

ssh root@dieipdeinesvservers

Damit wird eine ssh Konsolenverbindung zum V-Server aufgebaut

Um alle Updates des Betriebssystems durchzuf├╝hren, werden folgende Befehle ben├Âtigt:

sudo apt-get update
sudo apt-get upgrade

Nun wird ├╝berpr├╝ft ob die Firewall des Betriebssystems deaktiviert ist. Da wir in der V-Server Verwaltungskonsole eine Firewall haben, wird f├╝r unseren Einsatzzweck keine zweite Firewall ben├Âtigt.

ufw status

Ist die Firewall aktiv, deaktivieren wir diese.

ufw disable

Um alle Pakete aus den Netzwerken richtig zu routen, muss das IPv4 Forwarding aktiviert sein.

cd /etc/
nano sysctl.conf # ├Âffnet den Editor zur Bearbeitung der Konfiguration

Entferne das “#” vor dem Parameter “net.ip4.ip_forward=1”

Nun wird der Dienst neu gestartet:

sudo sysctl -p

Installation des Wireguard VPN-Servers:

curl -L https://install.pivpn.io | bash

Alle nun angezeigten Fenster best├Ątigen, bis die Aufforderung kommt einen User anzulegen, dort legen wir dann einen User und ein Password unserer Wahl an ( f├╝r die folgende Schritte f├╝ge ich Screenshots ein):

Alle weiteren Schritte mit OK best├Ątigen und am Ende des Prozesses Reboot durchf├╝hren.

Um nun auch in die Netzwerke routen zu k├Ânnen , m├╝ssen folgende Einstellungen in der wg0.conf erg├Ąnzt werden.

Dazu brauchen wir zun├Ąchst den Namen des Netzwerkadapters:

ifconfig
nano /etc/wireguard/wg0.conf

Jetzt wird das Routing f├╝r PostUp und PostDown konfiguriert, dazu f├╝ge hinter ListenPort folgende Zeilen in der wg0.conf ein ( ersetze ggf. ens6 durch den Namen deines Netzwerkadapters):

PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE

Als n├Ąchster Schritt muss bei jeder ├änderung in der wg0.conf das Tunnelinterface neu gestartet werden.

wg-quick down wg0
wg-quick up wg0

Nun kann ein neuer VPN Client erzeugt werden:

pivpn add

Jetzt k├Ânnen wir die Konfigurationsdaten kopieren:

nano /home/vpn/configs/video_rechner.conf

Die Daten aus der Konfiguration kopieren wir uns in die Zwischenablage.

Nun brauchen wir f├╝r unseren Rechner einen Client. Diesen findet ihr unter:

Installation – WireGuard

Nach der Installation wird die Software gestartet und auf dem Rechner ein neuer Tunnel erstellt. Die kopierten Daten werden dort eingef├╝gt

Ist dieser schritt erfolgt, kann der Tunnel aktiviert werden:

Nachdem der Tunnel aufgebaut wurde, k├Ânnen wir uns auf den V-Server wieder an der Konsole anmelden und den Status der Clients ├╝berpr├╝fen:

pivpn clients

HomeAssistant WireguardClient Integration – Vorbereitungen

Wir legen einen neuen Client an, und nennen diesen z.B. homeassistant. Die Schritte sind die selben, wie im obigen Abschnitt.

Wir kopieren uns die Client Konfigurationsdaten aus dem Verzeichnis /home/vpn/homeassistant.conf ( die Schritte gleichen dem obigen Prozess)

Installation des Wireguard Clients im Add-On Store

Repository Url:

https://github.com/bigmoby/hassio-repository-addon

Wir ├╝bertragen aus den gespeicherten Informationen die Daten in die Konfiguration des Add-Ons

Nachdem der Client gestartet wurde, kontrollieren wir auf unserem V-Server , ob die Verbindung hergestellt werden konnte.

Wurden Daten gesendet und empfangen, steht die Verbindung

Um den Client (IP 172.16.0.18 ) im gesamten Netzwerk verf├╝gbar zu machen, muss eine Route in der wg0.conf eingef├╝gt werden.

nano /etc/wireguard/wg0.conf

Beim Peer “homeassistant” f├╝gen wir nun unter AllowedIPs die IPAdresse des Home Assistant Clients hinzu.

Danach f├╝hren wir einen Reboot des V-Server aus ( Wenn die Firewall Regeln noch nicht geh├Ąrtet wurden, funktioniert auch ein wg-quick down wg0 und wg-quick up wg0 )

Mit route kann man nach dem Reboot kontrollieren, ob die Route gesetzt wurde.

Alle weiteren Schritte wiederholen sich und sind im Video ausf├╝hrlich beschrieben. Es wird noch gezeigt, wie man ein Handy verbindet und auf einem mobilen Router den Zugriff auf das Netzwerk hinter dem Router erlaubt.

Home Assistant in Aktion: Anwesenheitssimulation leicht gemacht. Auch f├╝r Einsteiger !

Erlebe die Zukunft des Wohnens mit Home Assistant! Entdecke, wie du spielend leicht eine ├╝berzeugende Anwesenheitssimulation erstellst ÔÇô perfekt auch f├╝r Neueinsteiger. Tauche ein in die Welt der DIY-Hausautomatisierung und sichere dein Zuhause mit innovativer Technologie.

In meinem Shop findest du interessante Produkte *

Hier findest du meine Beispielautomatisierung:

alias: Video_Pr├Ąsenzsimulation_Urlaub
description: ""
trigger:
  - platform: sun
    event: sunset
    offset: "-00:30:00"
condition: []
action:
  - repeat:
      sequence:
        - service: light.turn_off
          metadata: {}
          data: {}
          target:
            entity_id: light.lichtergruppe1
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_on
          metadata: {}
          data_template:
            entity_id: |
              {{ state_attr('light.lichtergruppe1','entity_id') | random }}
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_off
          metadata: {}
          data: {}
          target:
            entity_id: light.lichtergruppe2
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_on
          metadata: {}
          data_template:
            entity_id: |
              {{ state_attr('light.lichtergruppe2','entity_id') | random }}
      while:
        - condition: and
          conditions:
            - condition: time
              before: "23:00:00"
            - condition: state
              entity_id: input_boolean.urlaubsmodus
              state: "on"
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id:
              - Urlaub ist beendet
          - condition: and # im Video fehlte diese logische & Verkn├╝pfung mit dem Zustand des Urlaubsmodus
            conditions:
              - condition: trigger
                id:
                  - Es wird nun geschlafen
              - condition: state
                entity_id: input_boolean.urlaubsmodus
                state: "on"
    then:
      - service: light.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - light.lichtergruppe1
            - light.lichtergruppe2
mode: single

M├Âchte man die Automatisierung direkt beenden, wenn z.B. 23:00 Uhr ist , oder der Urlaubsmodus beendet wird, dann kann man die Automatisierung in den Modus “Neustart” setzen.

Hier ein Beispiel dazu:

alias: Video_Pr├Ąsenzsimulation_Urlaub
description: ""
trigger:
  - platform: sun
    event: sunset
    offset: "-00:30:00"
  - platform: state
    entity_id:
      - input_boolean.urlaubsmodus
    to: "off"
    id: Urlaub ist beendet
  - platform: time
    at: "23:00:00"
    id: Es ist 23 Uhr
condition: []
action:
  - repeat:
      sequence:
        - service: light.turn_off
          metadata: {}
          data: {}
          target:
            entity_id: light.lichtergruppe1
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_on
          metadata: {}
          data_template:
            entity_id: |
              {{ state_attr('light.lichtergruppe1','entity_id') | random }}
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_off
          metadata: {}
          data: {}
          target:
            entity_id: light.lichtergruppe2
        - delay:
            minutes: "{{ range(2,5) | random }}"
        - service: light.turn_on
          metadata: {}
          data_template:
            entity_id: |
              {{ state_attr('light.lichtergruppe2','entity_id') | random }}
      while:
        - condition: and
          conditions:
            - condition: time
              before: "23:00:00"
            - condition: state
              entity_id: input_boolean.urlaubsmodus
              state: "on"
  - if:
      - condition: or
        conditions:
          - condition: trigger
            id:
              - Urlaub ist beendet
          - condition: and # im Video fehlte diese logische & Verkn├╝pfung mit dem Zustand des Urlaubsmodus
            conditions:
              - condition: trigger
                id:
                  - Es wird nun geschlafen
              - condition: state
                entity_id: input_boolean.urlaubsmodus
                state: "on"
    then:
      - service: light.turn_off
        metadata: {}
        data: {}
        target:
          entity_id:
            - light.lichtergruppe1
            - light.lichtergruppe2
mode: restart

Wie du HACS installierst um die Integration von Simon zu nutzen, findest zu hier:

Simon vom Kanal Simon42 hat die HACS Integration Presence Simulation vorgestellt. Vielleicht eine alternative L├Âsung f├╝r Euch.

Home Assistant: Die Zukunft enth├╝llen: Prognosedaten ohne Grafana visualisieren!

Willst du der Zukunft einen Schritt voraus sein? Dann ist jetzt deine Gelegenheit! Mit Home Assistant und der Apex Chart Card kannst du tiefer in die Welt der Prognosedaten eintauchen ÔÇô und das alles ohne Grafana! Keine langwierigen Konfigurationen mehr, keine Grafiken, die dich ├╝berfordern. Nur klare, pr├Ązise Vorhersagen direkt in deinem Smart-Home-Setup. Entdecke die m├Ąchtige Kombination von Technologie und Vorhersage und gestalte deine Zukunft ÔÇô einfacher als je zuvor. Verpasse nicht diese Chance, deinen Alltag zu revolutionieren und dich an die Spitze zu katapultieren!

ACHTUNG: F├╝r alle, die die Solcast Solar Integration verwendet haben eine wichtige Information. Die Integration wurde vom Entwickler von GitHub gel├Âscht. D.h. sie steht zum jetzigen Zeitpunkt 04.06.2024 nicht mehr zur Verf├╝gung. Dieses Video kann allerdings genauso Forecastdaten anderer Integrationen verwenden. Wenn Interesse besteht, kann ich gerne bei Gelegenheit die Beispiele auf eine alternative Variante anpassen. Gebt mir dazu in meinen Kommentaren eine kurze R├╝ckmeldung. Wenn gen├╝gend Meldungen existieren, werde ich die Beispiele auf einen anderen Forecastdienst ver├Ąndern.

Wie du Forecast Daten z.B. von Solcast verarbeitest , wird im Video erl├Ąutert. Neben Solcast Forecast Daten ist es auch m├Âglich sich Wetterforecast Daten zu generieren. Ab der Version Home Assistant 2024.3 hat sich einiges im Umgang mit Forecast Informationen bei Wetterdaten ge├Ąndert. Wie man sich mit der neuen Variante einen Template Sensor erstellt, hat Simon vom Kanal Simon42 an einigen Beispielen erl├Ąutert.

In diesem Video wird auf die Erstellung von Forecast Daten nach der neuen Variante eingegangen und Code -Beispiele erl├Ąutert, die als Basis f├╝r einen Wetterforecast Template dienen k├Ânnen. Die Daten m├╝ssten noch f├╝r einen Forecast mit einem Stundenraster innerhalb von 24h aufbereitet werden. Aber alle n├Âtigen Basics dazu werden in diesem Video vermittelt.

Weiterf├╝hrende Infos und auch den dazugeh├Ârigen YAML Code, findet ihr auf seiner Blog-Seite: https://www.simon42.com/home-assistan…

Um ApexCharts Card zu nutzen, ben├Âtigt ihr HACS. Hier findet ihr einige Videos, die euch den Einrichtungsprozess erl├Ąutern:

Kanal von: Simon42 – HACS Installation
Kanal von : SteuerdeinLeben – HACS Installation

Hier findet ihr die Blogseite von SteuerdeinLeben-Blog

ApexCharts-Kartenkonfiguration – Code – Snippet

type: custom:apexcharts-card
apex_config:
  chart:
    height: 400px
all_series_config:
  unit: kWh
header:
  title: Solar Forecast
  show: true
  standard_format: true
  show_states: true
  colorize_states: true
graph_span: 2d
span:
  start: day
  offset: '+0'
now:
  show: true
  label: Jetzt
yaxis:
  - id: kwh
    min: 0
    apex_config:
      tickAmount: 5
  - id: header
    show: false
series:
  - entity: sensor.solcast_pv_forecast_prognose_heute
    yaxis_id: kwh
    type: line
    name: Forecast heute
    color: yellow
    data_generator: |
      return entity.attributes.detailedForecast.map((start, index) => {
        return [new Date(start["period_start"]).getTime(), entity.attributes.detailedForecast[index]["pv_estimate10"]];
      });
    show:
      legend_value: false
      in_header: false
    stroke_width: 4
    float_precision: 2
    extend_to: false
  - entity: sensor.evcc_pv_power
    transform: return x / 1000.00
    yaxis_id: kwh
    type: area
    name: PV
    color: green
    show:
      legend_value: false
      in_header: false
    stroke_width: 2
    float_precision: 2
    extend_to: false
    group_by:
      func: avg
  - entity: sensor.solcast_pv_forecast_prognose_morgen
    yaxis_id: kwh
    type: line
    name: Forecast morgen
    color: yellow
    data_generator: |
      return entity.attributes.detailedForecast.map((start, index) => {
        return [new Date(start["period_start"]).getTime(), entity.attributes.detailedForecast[index]["pv_estimate10"]];
      });
    show:
      legend_value: false
      in_header: false
    stroke_width: 4
    float_precision: 2
    extend_to: false
  - entity: sensor.solcast_pv_forecast_prognose_heute
    yaxis_id: header
    name: Heute
    color: orange
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.solcast_pv_forecast_prognose_verbleibende_leistung_heute
    yaxis_id: header
    name: Verbleibend
    color: orange
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.solcast_pv_forecast_prognose_morgen
    yaxis_id: header
    name: Morgen
    color: grey
    show:
      legend_value: true
      in_header: true
      in_chart: false
  - entity: sensor.sum_evcc_pv_energie_heute
    yaxis_id: header
    name: PV heute
    color: green
    show:
      legend_value: true
      in_header: true
      in_chart: false

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