[KW 16 / 26] : Was habt ihr diese Woche im Smart Home geplant / umgesetzt?

Guten Morgen liebe Community,
hier der Wochenbeitrag für KW 16 in 2026 über unser aller Smart Home, weitere technische Dinge oder privates.

Ich mach mal den Anfang:

Folgendes wurde abgeschlossen:

  • ich habe meine Frau beim aufsetzen des Instagram und TikTok Kanals Smartzeug.inofficial unterstützt. Sie hat auch schon ihr erstes Video geschnitten und veröffentlicht :smiley:
  • Wenn ihr Teil der Reise sein möchtet ist hier der Link für Instagram und hier für TikTok.
  • Wir haben es nun endlich geschafft den Rollladenmotor vom Sohnemann auszutauschen.

Folgendes habe ich vor:

  • Rasen vertikutieren bevor es zu spät wird :sweat_smile:

Und was geht bei euch so?

4 „Gefällt mir“

Dieses Thema wurde automatisch nach 58 Minuten geöffnet.

Ich möchte mich an dem Projekt von @Dr.Big ESPHome Präsenzmelder mit ESP32-C3 mini + LD2410S versuchen.
Dafür werde ich erstmal die Einzelteile bei AliExzess raussuchen und bestellen. Dann sehe ich erstmal weiter.

2 „Gefällt mir“

Bei mir geht es heute weiter mit dem ersten Fach vom Computertisch.

2te PC ins Fach einbauen. Weitere Info-LED’s einbauen.
2ten Monitor auf dem Tisch befestigen und
alle Anschlüsse verlegen.
Verkabelungen sicher befestigen, in den Einschüben.

Abblenden der LEDs, damit sich nichts im Plexiglas mehr spiegelt.

3 „Gefällt mir“

Im Smarthome wird diese Woche wenig passieren, unser Vorgarten ist in die Jahre gekommen da bin ich erstmal dran.
Gehweg ausbessern, Smarte Bewässerung einbauen und Rollrassen verlegen, wobei ich den Rollrasen diese Woche noch nicht schaffe :slight_smile:

2 „Gefällt mir“

Bitte daran denken das du den LD2410"S" benötigst! Ansonsten „viel Erfolg!“
:waving_hand:

2 „Gefällt mir“

Ups… eine kleine Kachel Karte ist doch grade eben dazu gekommen, auf Grundlage von:

2026-04-13_07-39

Die passt gut zu dieser:
2026-04-12_21-39

2 „Gefällt mir“

Mist… irgendwie habe ich heute Morgen wenig zutun und bin voll auf dem „Umwelt-Kachel-Karten Tripp“

2026-04-13_08-48

Hier finde Ihr eure Messstation:

Und hier die Integration:

1 „Gefällt mir“

Deine „Umweltkarten“ sehen gut aus, magst Du den YAML-Code davon mal posten? Bitte :slight_smile:

1 „Gefällt mir“

Klar… sind ja nicht von mir, ich habe ChatGPT nur gesagt was ich haben möchte:
2026-04-12_21-39

type: custom:mushroom-template-card
entity: sensor.darmstadt_64295_064110003_gamma_odl_1h
primary: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} {% if val < 0.1 %}
    🟢 Normal
  {% elif val < 0.3 %}
    🟡 Leicht erhöht
  {% elif val < 1.0 %}
    🟠 Erhöht
  {% else %}
    🚨 KRITISCH
  {% endif %}
secondary: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} Aktuell: {{ val | round(3) }} µSv/h
icon: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} {% if val < 0.3 %}
    mdi:radioactive
  {% else %}
    mdi:alert
  {% endif %}
icon_color: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} {% if val < 0.1 %}
    green
  {% elif val < 0.3 %}
    yellow
  {% elif val < 1.0 %}
    orange
  {% else %}
    red
  {% endif %}
badge_icon: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} {% if val >= 1.0 %}
    mdi:alert-circle
  {% elif val >= 0.3 %}
    mdi:alert
  {% else %}
    mdi:check-circle
  {% endif %}
badge_color: >
  {% set val = states('sensor.darmstadt_64295_064110003_gamma_odl_1h') |
  float(0) %} {% if val >= 1.0 %}
    red
  {% elif val >= 0.3 %}
    orange
  {% else %}
    green
  {% endif %}
tap_action:
  action: more-info
hold_action:
  action: more-info

2026-04-13_07-39

type: custom:mushroom-template-card
entity: sensor.latest_earthquake
primary: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    🟢 Normal
  {% else %}
    {% if mag < 2 %}
      🟢 Kaum spürbar
    {% elif mag < 4 %}
      🟡 Schwach
    {% elif mag < 6 %}
      🟠 Deutlich
    {% else %}
      🚨 Starkes Erdbeben
    {% endif %}
  {% endif %}
secondary: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    📊 Stärke: 0.0
  {% else %}
    📊 Stärke: {{ mag | round(1) }}
    {% if state_attr('sensor.latest_earthquake','place') %}
    📍 {{ state_attr('sensor.latest_earthquake','place') }}
    {% endif %}
    📏 {{ dist | round(0) }} km entfernt
  {% endif %}
icon: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    mdi:earth
  {% elif mag < 4 %}
    mdi:earth
  {% else %}
    mdi:alert
  {% endif %}
icon_color: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    green
  {% elif mag < 2 %}
    green
  {% elif mag < 4 %}
    yellow
  {% elif mag < 6 %}
    orange
  {% else %}
    red
  {% endif %}
badge_icon: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    mdi:earth
  {% elif mag >= 6 %}
    mdi:alert-circle
  {% elif mag >= 4 %}
    mdi:alert
  {% else %}
    mdi:check-circle
  {% endif %}
badge_color: >
  {% set mag = states('sensor.latest_earthquake') | float(0) %} {% set lat1 =
  state_attr('sensor.latest_earthquake','latitude') | float(0) %} {% set lon1 =
  state_attr('sensor.latest_earthquake','longitude') | float(0) %} {% set lat2 =
  state_attr('zone.home','latitude') | float(0) %} {% set lon2 =
  state_attr('zone.home','longitude') | float(0) %}

  {% set r = 6371 %} {% set dlat = (lat2 - lat1) * pi / 180 %} {% set dlon =
  (lon2 - lon1) * pi / 180 %} {% set a = (sin(dlat/2)**2) + cos(lat1*pi/180) *
  cos(lat2*pi/180) * (sin(dlon/2)**2) %} {% set c = 2 * atan2(sqrt(a),
  sqrt(1-a)) %} {% set dist = r * c %}

  {% if dist > 500 %}
    green
  {% elif mag >= 6 %}
    red
  {% elif mag >= 4 %}
    orange
  {% else %}
    green
  {% endif %}
tap_action:
  action: more-info
hold_action:
  action: more-info

2026-04-13_08-48

type: custom:mushroom-template-card
entity: sensor.sensor_13979_pm25
primary: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} {% set val = [pm25/10,
  pm10/20] | max %}

  {% if val < 1 %}
    🟢 Gute Luft
  {% elif val < 2 %}
    🟡 Leicht erhöht
  {% elif val < 4 %}
    🟠 Schlechte Luft
  {% else %}
    🚨 Kritisch
  {% endif %}
secondary: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} PM2.5: {{ pm25 | round(1) }}
  µg/m³ PM10: {{ pm10 | round(1) }} µg/m³
icon: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} {% if pm25 < 20 and pm10 < 40
  %}
    mdi:air-filter
  {% else %}
    mdi:alert
  {% endif %}
icon_color: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} {% set val = [pm25/10,
  pm10/20] | max %}

  {% if val < 1 %}
    green
  {% elif val < 2 %}
    yellow
  {% elif val < 4 %}
    orange
  {% else %}
    red
  {% endif %}
badge_icon: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} {% set val = [pm25/10,
  pm10/20] | max %}

  {% if val >= 4 %}
    mdi:alert-circle
  {% elif val >= 2 %}
    mdi:alert
  {% else %}
    mdi:check-circle
  {% endif %}
badge_color: >
  {% set pm25 = states('sensor.sensor_13979_pm25') | float(0) %} {% set pm10 =
  states('sensor.sensor_13979_pm10') | float(0) %} {% set val = [pm25/10,
  pm10/20] | max %}

  {% if val >= 4 %}
    red
  {% elif val >= 2 %}
    orange
  {% else %}
    green
  {% endif %}
tap_action:
  action: more-info
hold_action:
  action: more-info
1 „Gefällt mir“

Danke Dir! :slight_smile:
Dann werd ich mir mal die Umweltdatenintergrationen besorgen, Luftqualität hab ich schon seit einiger Zeit.
Danke für die Anregungen!

1 „Gefällt mir“

Gerne :slight_smile:

1 „Gefällt mir“

Hier noch der Link für die Gammastrahlen Kachel, also die Integration:

2 „Gefällt mir“

Also heute ist echt der Wurm drin, keiner Ruft an, nix zutun, also mal schnell ChatGPT eine neue Karte bauen lassen.
Ich habe in der Integration „Thermal Conmfort“ 3 Aqara Temperatur Sensoren, für Außen, Kino und Gästezimmer, dann noch Werte für das Wohn- Schlafzimmer, sowie Küche und Flur, hier bekomme ich die Daten als „climate“.

Ich habe hier ChatGPT beauftragt NUR eine schnelle Übersicht über „Lohnt sich Lüften?“ zu Bauen, das ist das Ergebnis:
2026-04-13_11-47

type: custom:mushroom-template-card

entity: sensor.thermal_comfort_terrasse_taupunkt

primary: >
  {% set out = states('sensor.thermal_comfort_terrasse_taupunkt') | float(0) %}

  {# --- Innenräume (Taupunkt direkt wo vorhanden) --- #}
  {% set t1 = states('sensor.thermal_comfort_kino_taupunkt') | float(0) %}
  {% set t2 = states('sensor.thermal_comfort_gastezimmer_taupunkt') | float(0) %}

  {# --- climate Innenräume (vereinfachter Proxy: Temp + Feuchte) --- #}
  {% set rooms = [
    'climate.wohnzimmer_raumklima',
    'climate.schlafzimmer_raumklima',
    'climate.kuche_raumklima',
    'climate.buro_raumklima'
  ] %}

  {% set ns = namespace(sum=0, count=0) %}

  {% for r in rooms %}
    {% set temp = state_attr(r,'current_temperature') | float(none) %}
    {% set hum = state_attr(r,'current_humidity') | float(none) %}

    {% if temp is not none and hum is not none %}
      {# einfache Taupunkt-Näherung #}
      {% set dp = temp - ((100 - hum) / 5) %}
      {% set ns.sum = ns.sum + dp %}
      {% set ns.count = ns.count + 1 %}
    {% endif %}
  {% endfor %}

  {% set indoor_climate_dp = (ns.sum / ns.count) if ns.count > 0 else 0 %}

  {% set indoor_avg = (t1 + t2 + indoor_climate_dp) / 3 %}

  {% if out + 1 < indoor_avg %}
    🟢 Lüften lohnt sich
  {% elif out < indoor_avg %}
    🟡 Bedingt sinnvoll
  {% else %}
    🔴 Nicht lüften
  {% endif %}

secondary: >
  {% set out = states('sensor.thermal_comfort_terrasse_taupunkt') | float(0) %}

  {% set t1 = states('sensor.thermal_comfort_kino_taupunkt') | float(0) %}
  {% set t2 = states('sensor.thermal_comfort_gastezimmer_taupunkt') | float(0) %}

  {% set rooms = [
    'climate.wohnzimmer_raumklima',
    'climate.schlafzimmer_raumklima',
    'climate.kuche_raumklima',
    'climate.buro_raumklima'
  ] %}

  {% set ns = namespace(sum=0, count=0) %}

  {% for r in rooms %}
    {% set temp = state_attr(r,'current_temperature') | float(none) %}
    {% set hum = state_attr(r,'current_humidity') | float(none) %}

    {% if temp is not none and hum is not none %}
      {% set dp = temp - ((100 - hum) / 5) %}
      {% set ns.sum = ns.sum + dp %}
      {% set ns.count = ns.count + 1 %}
    {% endif %}
  {% endfor %}

  {% set indoor_climate_dp = (ns.sum / ns.count) if ns.count > 0 else 0 %}
  {% set indoor_avg = (t1 + t2 + indoor_climate_dp) / 3 %}

  🌍 Außen Taupunkt: {{ out | round(1) }} °C
  🏠 Innen Ø Taupunkt: {{ indoor_avg | round(1) }} °C

icon: >
  {% set out = states('sensor.thermal_comfort_terrasse_taupunkt') | float(0) %}

  {% set t1 = states('sensor.thermal_comfort_kino_taupunkt') | float(0) %}
  {% set t2 = states('sensor.thermal_comfort_gastezimmer_taupunkt') | float(0) %}

  {% set rooms = [
    'climate.wohnzimmer_raumklima',
    'climate.schlafzimmer_raumklima',
    'climate.kuche_raumklima',
    'climate.buro_raumklima'
  ] %}

  {% set ns = namespace(sum=0, count=0) %}

  {% for r in rooms %}
    {% set temp = state_attr(r,'current_temperature') | float(none) %}
    {% set hum = state_attr(r,'current_humidity') | float(none) %}

    {% if temp is not none and hum is not none %}
      {% set dp = temp - ((100 - hum) / 5) %}
      {% set ns.sum = ns.sum + dp %}
      {% set ns.count = ns.count + 1 %}
    {% endif %}
  {% endfor %}

  {% set indoor_climate_dp = (ns.sum / ns.count) if ns.count > 0 else 0 %}
  {% set indoor_avg = (t1 + t2 + indoor_climate_dp) / 3 %}

  {% if out + 1 < indoor_avg %}
    mdi:weather-windy
  {% elif out < indoor_avg %}
    mdi:weather-partly-cloudy
  {% else %}
    mdi:window-close
  {% endif %}

icon_color: >
  {% set out = states('sensor.thermal_comfort_terrasse_taupunkt') | float(0) %}

  {% set t1 = states('sensor.thermal_comfort_kino_taupunkt') | float(0) %}
  {% set t2 = states('sensor.thermal_comfort_gastezimmer_taupunkt') | float(0) %}

  {% set rooms = [
    'climate.wohnzimmer_raumklima',
    'climate.schlafzimmer_raumklima',
    'climate.kuche_raumklima',
    'climate.buro_raumklima'
  ] %}

  {% set ns = namespace(sum=0, count=0) %}

  {% for r in rooms %}
    {% set temp = state_attr(r,'current_temperature') | float(none) %}
    {% set hum = state_attr(r,'current_humidity') | float(none) %}

    {% if temp is not none and hum is not none %}
      {% set dp = temp - ((100 - hum) / 5) %}
      {% set ns.sum = ns.sum + dp %}
      {% set ns.count = ns.count + 1 %}
    {% endif %}
  {% endfor %}

  {% set indoor_climate_dp = (ns.sum / ns.count) if ns.count > 0 else 0 %}
  {% set indoor_avg = (t1 + t2 + indoor_climate_dp) / 3 %}

  {% if out + 1 < indoor_avg %}
    green
  {% elif out < indoor_avg %}
    orange
  {% else %}
    red
  {% endif %}

tap_action:
  action: more-info

hold_action:
  action: more-info
1 „Gefällt mir“

Kannst ja deine Telefonnummer hier veröffentlichen, dann wirst du schon sehen (hören). :rofl:

3 „Gefällt mir“

Na, trau dich! :innocent:

3 „Gefällt mir“

Ganz sicher… nicht… wann hat man schon mal einen Tag an dem nichts Los ist und man noch dafür Bezahlt wird :joy:

3 „Gefällt mir“

Alles gut Großer! Wenn man sich das Projekt hier ansieht, dann sollte man auch bitteschön alles lesen und genau das habe ich gemacht - 3x S ist unterwegt. Hoffentlich bin ich nicht zu doof für sowas?!

2 „Gefällt mir“

Brauchst ja nur ins Impressum schauen seiner HP, da hast du alles parat! :wink: :rofl:

2 „Gefällt mir“