Menü
Über mich Leistungen Werdegang Zusammenarbeiten
Raspberry Pi and smart home components
Smart Home 1 Mär., 2026 • 20 Min. Lesezeit

Operation Smart Home: Eine Vater-Sohn-Missionsbesprechung

Today my son and I execute our smart home plan. Raspberry Pi 5, follow-me lighting, WiFi sensing. The hardware's ready, the code's tested. Time to build.

Teilen:
Lee Foropoulos

Lee Foropoulos

20 Min. Lesezeit

Wisst ihr, wovon die Welt genug hat? Von Leuten, die darüber reden, was sie "irgendwann" machen werden. Träumer, die untätig herumsitzen und auf den perfekten Moment warten, das perfekte Setup, das perfekte Was-auch-immer. In der Zwischenzeit tickt das Leben weiter.

"Ich spürte einmal mehr, wie einfach und genügsam das Glück ist: ein Glas Wein, eine geröstete Kastanie, ein armseliger Kohleofen, das Rauschen des Meeres. Sonst nichts." — Nikos Kazantzakis, Alexis Sorbas

Zorba hat nicht gewartet. Zorba hat getanzt. Zorba ist spektakulär gescheitert und hat darüber gelacht. Als sein großes Bergbauprojekt zusammenbrach (buchstäblich zusammenbrach), griff er nach einer Flasche Wein und fing an, am Strand zu tanzen. Es ist besser, wie Zorba zu scheitern, als untätig herumzusitzen.

Also führen mein Sohn und ich heute aus. Der Plan steht. Die Hardware ist vorbereitet. Das meiste wurde einzeln getestet: Die Automatisierungen funktionieren, die Sensoren erkennen, der Code kompiliert. Jetzt sehen wir, ob alles zusammenspielt. Wird etwas schiefgehen? Wahrscheinlich. Sind wir bereit für Herausforderungen? Absolut. Das ist der spaßige Teil.

Es ist besser, wie Zorba zu scheitern, als untätig herumzusitzen.

Ohne Plan gibt es keinen Weg nach vorne. Nur Leute, die reden, um sich selbst reden zu hören. Nur Träume. Das hier ist kein Traum, das ist ein Ausführungsbriefing.

Die Mission

Bis wir heute Abend den Grill anwerfen, wird dieses Haus:

  • Lichter einschalten im Raum, den du betrittst, und sie hinter dir dimmen, wenn du gehst
  • Jede Tür verriegeln, wenn das Bett erkennt, dass wir eingeschlafen sind
  • Die Garage schließen, automatisch wenn wir es (mal wieder) vergessen
  • Das Klima anpassen, basierend darauf, welche Räume tatsächlich belegt sind
  • WiFi-Rauschen erzeugen, damit niemand draußen die gleiche Sensortechnik gegen uns einsetzen kann

Und Amazon wird nichts davon wissen. Alles läuft lokal. Keine Cloud. Keine Abos. Kein Datensammeln.

Das Arsenal (Bereits Bereitgestellt)

Das Gehirn: Raspberry Pi 5 - BEREIT

Dieses Ding steht seit zwei Wochen auf meinem Schreibtisch, vollständig konfiguriert, wartet auf heute. Der Pi 5 ist überdimensioniert für einfache Heimautomatisierung. Ich mag Überdimensionierung. Er läuft mit Raspberry Pi OS Lite, Docker ist installiert, Portainer brummt. Alles was ich tun muss, ist ihn dort anzuschließen, wo er leben wird.

Ich habe mich für das Argon ONE V3 M.2 NVME PCIE Case Bundle entschieden. Bereits zusammengebaut:

  • M.2 SSD mit geflashtem OS (keine SD-Karten-Ausfälle bei uns)
  • Docker + Portainer installiert und getestet
  • Home Assistant Container bereit zum Deployen
  • Statische IP im Netzwerk zugewiesen

Pre-Flight Checkliste - ABGESCHLOSSEN

  • ☑ Raspberry Pi OS Lite auf SSD geflasht
  • ☑ SSH aktiviert, Zugangsdaten gesetzt
  • ☑ Netzwerk mit statischer IP konfiguriert
  • ☑ Docker + Portainer laufen
  • ☑ Home Assistant Konfigurationsdateien bereitgestellt

Die Sensoren: ESP32 Boards - GEFLASHT UND GETESTET

Diese kleinen ESP32 Boards waren der spaßige Teil. Mein Sohn und ich haben letztes Wochenende damit verbracht, sie zu flashen und die WiFi-Signaldaten hereinrollen zu sehen. Sie funktionieren. Bestätigt.

  1. WiFi-Sensing-Einheit - Erkennt Bewegung durch Messung der WiFi-Signalstörung. Getestet, indem wir durchs Wohnzimmer gelaufen sind: erkennt Bewegung durch Wände, etwa 4 bis 6 Meter Reichweite.
  2. WiFi-Nebel-Einheit - Erzeugt Rauschen, um externe WiFi-Erkennung zu blenden. Läuft isoliert und erzeugt wunderschönes Chaos im Signalraum.

Heute integrieren wir sie in Home Assistant und sehen, ob die Automatisierungen korrekt auslösen. Der Code funktioniert im Test. Die Frage ist: Funktioniert es, wenn alles verbunden ist?

(Wenn ihr die Hintergründe wissen wollt, lest meine Artikel über WiFi-Sensing und WiFi-Gegenmaßnahmen.)

Die Bestehende Infrastruktur - BEREITS VORHANDEN

Wir fangen nicht bei null an. Das Haus hat bereits smarte Sachen; sie laufen nur auf separaten Apps wie ein Haufen unverbundener Inseln. Heute vereinigen wir das Königreich:

  • Philips Hue Lampen - Bereits überall installiert. Derzeit über die Hue App gesteuert. Heute: Home Assistant übernimmt.
  • Ecobee Thermostat - Weiß bereits über seine Sensoren, welche Räume belegt sind. Heute: Wir integrieren diese Daten.
  • Eight Sleep Bett - Verfolgt bereits, wann ich schlafe. Heute: Es löst die Verriegelungsautomatisierung aus.
  • Kwikset Schlösser (Z-Wave) - Bereits an den Türen. Heute: Sie lernen, sich selbst zu verriegeln.
  • MyQ Garage - Bereits installiert. Heute: Kein Zurückfahren mehr, weil ich vergessen habe zu schließen.

Der Punkt: Ihr habt vielleicht schon mehr Smart-Home-Geräte als ihr denkt. Sie reden nur noch nicht miteinander.

Home automation dashboard
Bis heute Abend: Alles vereint unter einem Dashboard

Phase 1: Infrastruktur (ERLEDIGT)

Das ist die Arbeit vom letzten Wochenende. Wenn ihr später mitmacht, hier ist was wir gemacht haben. Wenn ihr meinen Docker-Artikel gelesen habt, wisst ihr warum wir alles containerisiert haben.

bash# Docker + Portainer - Already running
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

Portainer läuft unter http://raspberrypi.local:9000. Schöne GUI für Container-Management. Erledigt.

Phase 2: Home Assistant (DIE ERSTE AUFGABE HEUTE)

Die docker-compose Datei ist geschrieben. Das Konfigurationsverzeichnis steht bereit. Heute starten wir es richtig und beginnen Geräte zu verbinden.

yaml# docker-compose.yml - ready to deploy
version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - /home/pi/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

Der Plan: docker-compose up -d ausführen, den Setup-Assistenten starten und diese Integrationen einzeln verbinden:

  • Philips Hue - Sollte sich automatisch im Netzwerk finden
  • Ecobee - OAuth-Flow, muss die App griffbereit haben
  • Eight Sleep - API-Integration, Zugangsdaten bereit
  • Z-Wave - Das könnte heikel werden, Schlösser können zickig sein
  • MyQ - Unkompliziert, schon mal gemacht
  • ESPHome - Für die ESP32-Geräte, die wir letztes Wochenende geflasht haben

Erwartete Herausforderung: Z-Wave. Schlösser haben immer Charakter. Mal sehen.

Close-up of a circuit board with electronic components
Die ESP32 Boards sind geflasht, getestet und bereit zur Integration

Phase 3: WiFi-Sensing Integration (DER SPASSIGE TEIL HEUTE)

Die Sensing-Einheit - BEREIT ZUM VERBINDEN

Letztes Wochenende hat mein Sohn den seriellen Monitor beobachtet, als dieses Ding mich beim Durchgehen durchs Wohnzimmer erkannte. Seine genauen Worte: "Papa, das ist gruselig und großartig."

Der ESP32 ist bereits mit ESPHome geflasht. Er erkennt bereits Bewegung über WiFi CSI (Channel State Information). Heute stecken wir ihn in Home Assistant und geben ihm einen Namen: binary_sensor.living_room_occupied

Der Test: Ins Wohnzimmer gehen. Sieht Home Assistant es? Wenn ja, sind wir im Geschäft.

Die Nebel-Einheit - DATENSCHUTZSCHICHT BEREIT

Der zweite ESP32 betreibt den Rauschgenerator aus meinem Gegenmaßnahmen-Artikel. Er läuft seit einer Woche auf meiner Werkbank und erzeugt wunderschönes Chaos im WiFi-Spektrum.

Ja, wir nutzen WiFi-Sensing für unsere eigene Automatisierung und schützen uns gleichzeitig davor, dass andere das Gleiche gegen uns tun. Das ist keine Heuchelei. Das ist operative Sicherheit. Und mein Sohn findet es das Coolste überhaupt.

Zukünftige Erweiterung: 3+3

Das heutige Ziel ist, das Konzept mit einem Sensor und einem Nebel-Gerät zu beweisen. Sobald wir sicher sind:

  • 3 Sensing-Geräte: Wohnzimmer, Küche, Schlafzimmer
  • 3 Nebel-Geräte: Im ganzen Haus verteilt für komplette Abdeckung

Das sind ungefähr 50 $ an ESP32 Boards für ein Upgrade des ganzen Hauses. Aber zuerst: Lass uns sicherstellen, dass heute alles klappt.

$50
Gesamtkosten der ESP32 Boards für WiFi-Sensing-Abdeckung im ganzen Haus mit 3 Sensoren und 3 Nebel-Geräten.

Phase 4: Die Automatisierungen (DER GANZE SINN)

Dafür haben wir das alles aufgebaut. Diese YAML-Dateien sind geschrieben, hundertmal im Kopf getestet und bereit zum Einfügen. Werden sie beim ersten Versuch funktionieren? Finden wir's raus.

Automatisierung 1: Follow-Me Beleuchtung (DER SHOWSTOPPER)

Die Vision: Betritt einen Raum, die Lichter gehen an, um dich zu begrüßen. Geh raus, und sie dimmen hinter dir wie ein respektvoller Butler. Tony Starks Haus. Das ist das Ziel.

Die Feinheit: Wenn du ein Licht manuell eingeschaltet hast, lässt das System es in Ruhe. Deine Wahl wird respektiert. Wir verfolgen das mit input_boolean Helpern. Weil es nichts Schlimmeres gibt als eine Automatisierung, die gegen dich kämpft.

yaml# configuration.yaml additions
input_text:
  last_occupied_room:
    name: "Last Occupied Room"
    initial: "none"

input_boolean:
  living_room_auto_triggered:
    name: "Living Room Auto Triggered"
  kitchen_auto_triggered:
    name: "Kitchen Auto Triggered"
  bedroom_auto_triggered:
    name: "Bedroom Auto Triggered"

Jetzt die Automatisierung:

yaml# automations.yaml
- alias: "Follow Me - Living Room Entry"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: light.living_room
      state: "off"
  action:
    # Dim the previous room if it was auto-triggered
    - choose:
        - conditions:
            - condition: template
              value_template: "{{ states('input_text.last_occupied_room') == 'kitchen' }}"
            - condition: state
              entity_id: input_boolean.kitchen_auto_triggered
              state: "on"
          sequence:
            - service: light.turn_on
              target:
                entity_id: light.kitchen
              data:
                brightness_pct: 20
                transition: 3
    # Turn on current room
    - service: light.turn_on
      target:
        entity_id: light.living_room
      data:
        brightness_pct: 100
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.living_room_auto_triggered
    - service: input_text.set_value
      target:
        entity_id: input_text.last_occupied_room
      data:
        value: "living_room"

- alias: "Follow Me - Living Room Vacancy"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "off"
      for:
        minutes: 2
  condition:
    - condition: state
      entity_id: input_boolean.living_room_auto_triggered
      state: "on"
  action:
    - service: light.turn_off
      target:
        entity_id: light.living_room
      data:
        transition: 5
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.living_room_auto_triggered

Der Test: Sobald das deployt ist, werden mein Sohn und ich durchs Haus laufen und sehen, ob es uns folgt. Wenn es funktioniert, werden wir uns fühlen wie in einem Film. Wenn nicht, debuggen wir es bei Pizza.

Automatisierung 2: Nachtverriegelung (DIE SEELENRUHE)

Das Szenario: Es ist 22 Uhr. Ich lege mich ins Bett. Fünf Minuten später bestätigt mein Eight Sleep, dass ich tatsächlich schlafe (nicht nur daliege und scrolle). Das Haus reagiert: Jede Tür verriegelt sich, die Garage schließt sich, falls ich es vergessen habe (wieder mal), der Thermostat wechselt in den Schlafmodus, und automatisch eingeschaltete Lichter dimmen herunter.

yaml- alias: "Bedtime - Eight Sleep Triggered Lockdown"
  trigger:
    - platform: state
      entity_id: binary_sensor.eight_sleep_bed_presence
      to: "on"
      for:
        minutes: 5
  condition:
    - condition: time
      after: "21:00:00"
      before: "06:00:00"
  action:
    # Lock all doors
    - service: lock.lock
      target:
        entity_id:
          - lock.front_door
          - lock.back_door
    # Close garage if open
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    # Set Ecobee to sleep mode
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Sleep"
    # Turn off auto-triggered lights
    - service: light.turn_off
      target:
        entity_id:
          - light.living_room
          - light.kitchen
      data:
        transition: 5

Kein Eight Sleep? Ersetze es durch einen zeitbasierten Trigger (22:30 Uhr) oder Handy-Ladeerkennung. Die Logik ist dieselbe.

Automatisierung 3: Garagen-Auto-Schließung (DER EHE-RETTER)

Das Problem: "Hast du die Garage zugemacht?" - eine Frage, die 3x pro Woche in diesem Haushalt gestellt wird. Nicht mehr. Nach 10 Minuten offen schließt sie sich selbst und schickt mir eine Nachricht.

yaml- alias: "Garage - Auto Close After 10 Minutes"
  trigger:
    - platform: state
      entity_id: cover.garage_door
      to: "open"
      for:
        minutes: 10
  action:
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    - service: notify.mobile_app_your_phone
      data:
        title: "Garage Secured"
        message: "Garage was open for 10 minutes. Auto-closed."
        data:
          tag: "garage-closed"

Automatisierung 4: Intelligente Klimasteuerung (DER ENERGIESPARER)

Die Logik: Warum ein leeres Haus heizen? Wenn unsere WiFi-Sensoren sagen, dass seit 30 Minuten niemand zu Hause ist, wechselt Ecobee in den Abwesenheitsmodus. Wenn jemand reinkommt, wacht es wieder auf.

yaml- alias: "Ecobee - Away When House Empty"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "off"
      for:
        minutes: 30
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Away"

- alias: "Ecobee - Home When Occupied"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: climate.ecobee
      attribute: preset_mode
      state: "Away"
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Home"

Den Aggregierten Sensor Erstellen

Der binary_sensor.home_occupied ist ein Template-Sensor, der alle Raumsensoren kombiniert:

yamltemplate:
  - binary_sensor:
      - name: "Home Occupied"
        state: >
          {{ is_state('binary_sensor.living_room_occupied', 'on')
             or is_state('binary_sensor.kitchen_occupied', 'on')
             or is_state('binary_sensor.bedroom_occupied', 'on') }}

Was Könnte Schiefgehen? (Der Spaßige Teil)

Hier ist die Sache: Etwas WIRD heute schiefgehen. Das ist kein Pessimismus, das ist Realität. Und das ist okay. Das ist der ganze Sinn.

Wahrscheinliche Kandidaten für das heutige Abenteuer:

  • Z-Wave Schlösser - Diese Dinger haben Charakter. Das Pairing könnte mehrere Versuche brauchen.
  • WiFi-Sensor-Kalibrierung - Funktioniert auf der Werkbank, aber was ist, wenn er an seinem Platz steht?
  • Automatisierungs-Grenzfälle - Was passiert, wenn jemand in 2 Sekunden durch einen Raum läuft?
  • Das "gestern hat's funktioniert" Problem - Der Lieblingswitz der Technik.

Aber deshalb machen wir das zusammen. Vater und Sohn, Fehler beheben, lernen, wahrscheinlich darüber streiten, warum das YAML nicht parst. So lernt man wirklich: indem man etwas Echtes baut, es kaputtgehen sieht und es repariert.

Zorbas Mine brach zusammen. Seine Reaktion? Am Strand tanzen. Was auch immer heute kaputtgeht, wir kriegen das hin. Und wenn nicht, haben wir eine tolle Geschichte fürs Abendessen.

Die Philosophie

Hier ist, was die Macher von den Träumern trennt:

Träumer recherchieren monatelang. Sie lesen jeden Artikel. Sie warten auf die "richtige" Hardware. Sie optimieren ihren Plan bis er perfekt ist. Sie fangen nie an.

Macher schreiben einen Plan, sammeln was sie brauchen und führen aus. Sie erwarten Herausforderungen. Sie passen sich spontan an. Sie scheitern vorwärts.

Ohne Plan gibt es keinen Weg nach vorne; nur Leute, die reden, um sich selbst reden zu hören. Aber ein Plan ohne Ausführung ist nur ein Traum mit zusätzlichen Schritten.

Heutige Erfolgskriterien

  • ☐ Home Assistant läuft mit allen verbundenen Geräten
  • ☐ WiFi-Sensor erkennt Bewegung im Wohnzimmer
  • ☐ Follow-Me Beleuchtung funktioniert in mindestens einem Raum
  • ☐ Nachtverriegelungs-Automatisierung aktiviert
  • ☐ Mein Sohn sagt "das ist wie Tony Starks Haus"

Was als Nächstes Kommt (Nachdem Heute Funktioniert)

Angenommen wir schaffen es (und das werden wir, irgendwann, auch wenn es länger dauert als erwartet):

  • Vollständiges 3+3 ESP32 Deployment - Sensing in jedem Hauptraum, Nebel-Abdeckung überall
  • Wandmontiertes Tablet-Dashboard - Immer aktives Kontrollpanel im Flur
  • Lokale Sprachsteuerung - Wyoming/Piper für Sprachbefehle, die euer Haus nicht verlassen
  • Wasserleck-Sensoren - Unter jedem Waschbecken und beim Warmwasserbereiter

Aber zuerst: heute. Zuerst: Ausführung. Zuerst: beweisen, dass diese ganze Planung tatsächlich funktioniert.

Smart Home Bau-Checkliste 0/6

"Leben ist das, was passiert, während du eifrig dabei bist, andere Pläne zu machen." - John Lennon

Falsch. Leben ist das, was passiert, wenn du aufhörst zu planen und anfängst zu handeln. Wir sehen uns auf der anderen Seite. Zeit, etwas zu bauen.

How was this article?

Teilen

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Keinen Beitrag verpassen

Erhalten Sie eine Benachrichtigung bei neuen Artikeln. Keine E-Mail erforderlich.

Sie sehen ein Banner auf der Seite bei einem neuen Beitrag, plus eine Browser-Benachrichtigung wenn erlaubt.

Nur Browser-Benachrichtigungen. Kein Spam, keine E-Mail.