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!

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!

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:

YouTube player

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:

YouTube player

Den Kanal von Daniel (smarthomeyourself) findest du hier:

Das ausführliche Alarmo Tutorial von Daniel könnt ihr hier finden:

YouTube player

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:

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

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

Update 01.07.2024: Da mich schon ein paar Fragen zur Einbindung des Rauchmelders ereilt haben, möchte ich euch das Script für den Aqara Rauchmelder hier noch ergänzend zur Verfügung stellen.

Script Sirene einschalten:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Rauchmelder Sirene einschalten
sequence:
- device_id: cb8b15beb28b9adf6ddcc79b2d193bea
domain: select
entity_id: 1a08cf7364ee5aee41aba55636f6db6b
type: select_option
option: alarm
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- device_id: cb8b15beb28b9adf6ddcc79b2d193bea
domain: select
entity_id: 1a08cf7364ee5aee41aba55636f6db6b
type: select_option
option: mute
description: ""
icon: mdi:alarm-light
alias: Rauchmelder Sirene einschalten sequence: - device_id: cb8b15beb28b9adf6ddcc79b2d193bea domain: select entity_id: 1a08cf7364ee5aee41aba55636f6db6b type: select_option option: alarm - delay: hours: 0 minutes: 0 seconds: 5 milliseconds: 0 - device_id: cb8b15beb28b9adf6ddcc79b2d193bea domain: select entity_id: 1a08cf7364ee5aee41aba55636f6db6b type: select_option option: mute description: "" icon: mdi:alarm-light
alias: Rauchmelder Sirene einschalten
sequence:
  - device_id: cb8b15beb28b9adf6ddcc79b2d193bea
    domain: select
    entity_id: 1a08cf7364ee5aee41aba55636f6db6b
    type: select_option
    option: alarm
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - device_id: cb8b15beb28b9adf6ddcc79b2d193bea
    domain: select
    entity_id: 1a08cf7364ee5aee41aba55636f6db6b
    type: select_option
    option: mute
description: ""
icon: mdi:alarm-light

Rauchmelder Sirene ausschalten:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
alias: Rauchmelder Sirene ausschalten
sequence:
- device_id: cb8b15beb28b9adf6ddcc79b2d193bea
domain: select
entity_id: 1a08cf7364ee5aee41aba55636f6db6b
type: select_option
option: mute
description: ""
icon: mdi:alarm-light-off
alias: Rauchmelder Sirene ausschalten sequence: - device_id: cb8b15beb28b9adf6ddcc79b2d193bea domain: select entity_id: 1a08cf7364ee5aee41aba55636f6db6b type: select_option option: mute description: "" icon: mdi:alarm-light-off
alias: Rauchmelder Sirene ausschalten
sequence:
  - device_id: cb8b15beb28b9adf6ddcc79b2d193bea
    domain: select
    entity_id: 1a08cf7364ee5aee41aba55636f6db6b
    type: select_option
    option: mute
description: ""
icon: mdi:alarm-light-off

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!

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

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.

YouTube player
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:

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

Hier findet ihr die Blogseite von SteuerdeinLeben-Blog

ApexCharts-Kartenkonfiguration – Code – Snippet

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