Smart Building Lab

Mein privates Testfeld für Gebäudeautomation, Energiemanagement und IoT-Vernetzung.

Das Konzept: "Private Digital Twin"

Mein Smart Home basiert auf Home Assistant. Der Fokus liegt nicht auf "Spielereien", sondern auf messbarer Energieoptimierung, komplexen Automatisierungslogiken und einer performanten Visualisierung. Es dient mir als Sandbox, um theoretische Konzepte der Gebäudeautomation praktisch umzusetzen und die Möglichkeiten moderner IoT-Vernetzung auszuloten.

Energie Dashboard Home Assistant

Energiemanagement & Sektorenkopplung

Intelligente Verknüpfung von PV-Anlage, Batteriespeicher und Verbrauchern.

  • Autarkie-Maximierung: Prognosebasierte Steuerung des Heimspeichers (Solcast API) zur Minimierung des Netzbezugs und effizienten Nutzung des PV-Überschusses.
  • EV-Lademanagement: Prioritäre Ladung bei PV-Überschuss. Bei schlechter Ertragsprognose erfolgt eine bedarfsgesteuerte Ladung, um Mobilität sicherzustellen.
3D Gebäude Dashboard

Adaptive Gebäudehülle & Visualisierung

Automatisierung für Komfort und Energieeffizienz.

  • Kühllast-Reduktion: Verschattungsautomatik basierend auf Sonnenstand und Raumtemperatur. Reduziert aktiv den Wärmeeintrag im Sommer.
  • 3D-Visualisierung: Interaktiver "Digitaler Zwilling" des Hauses zur intuitiven Steuerung und Statusüberwachung der Wohnräume.

Der Tech-Stack

Ebene Komponenten & Technologien
Core & OS Home Assistant OS (Virtualisiert in Serverumgebung), MQTT Broker, ZHA
Feldgeräte (IoT) Shelly, Philips Hue, Tado, Sonos, uvm.
Energie Batteriespeicher-Management, Wallbox-Steuerung (OCPP)
Logik Komplexe YAML-Automationen (>4000 Zeilen Code)

Einblick in die Logik (YAML)

Beispiel für eine komplexe Automatisierung: Dynamisches EV-Laden mit Priorisierung.
Der Algorithmus prüft PV-Überschuss, Hausbatterie-Ladestand und Solcast-Prognose, um den optimalen Ladestrom (6A - 16A) zu setzen.

alias: Smartes PV-Laden (V2.0)
description: Optimierter Ladevorgang mit PV-Logik, Fahrzeugerkennung und Prognose.
trigger:
  - platform: numeric_state
    entity_id: sensor.solar_input_power
    above: 700
    for: "00:03:00"
  - platform: state
    entity_id:
      - binary_sensor.auto1_ladeklappe_zustand
      - sensor.auto2_steckerzustand
      - input_boolean.ladevorgang_erzwingen
action:
  - choose:
      # --- SZENARIO 1: ZWANGSLADUNG ---
      - alias: Zwangsladung (Manuell oder Batterie kritisch)
        conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: input_boolean.ladevorgang_erzwingen
                state: "on"
              - condition: numeric_state
                entity_id: sensor.auto1_batteriestand
                below: input_number.mindestladung_auto1
        sequence:
          - service: number.set_value
            target:
              entity_id: number.wallbox_maximum_current
            data:
              value: 16
          - service: notify.mobile_app_admin
            data:
              message: "Zwangsladung gestartet (16A)."

      # --- SZENARIO 2: SMARTES PV-LADEN ---
      - alias: Smartes PV-Laden
        conditions:
          - condition: or
            conditions:
              - condition: numeric_state
                entity_id: sensor.solar_input_power
                above: 700
              - condition: and
                conditions:
                  - condition: numeric_state
                    entity_id: sensor.solcast_forecast_today
                    above: 15 # Genug Sonne erwartet?
                  - condition: numeric_state
                    entity_id: sensor.home_battery_level
                    above: 90 # Hausbatterie voll?
        sequence:
          - variables:
              auto_name: Unbekannt
          - choose:
              # Logik für Auto 1
              - alias: Auto 1 erkannt
                conditions:
                  - condition: state
                    entity_id: binary_sensor.auto1_ladeklappe_zustand
                    state: "on"
                  - condition: zone
                    entity_id: device_tracker.auto1_standort
                    zone: zone.home
                sequence:
                  - service: number.set_value
                    target:
                      entity_id: number.wallbox_maximum_current
                    data:
                      value: 6 # Start mit Mindeststrom
                  - variables:
                      auto_name: Auto 1
              # Logik für Auto 2
              - alias: Auto 2 erkannt
                conditions:
                  - condition: state
                    entity_id: binary_sensor.auto2_stecker
                    state: "on"
                sequence:
                  - service: number.set_value
                    target:
                      entity_id: number.wallbox_maximum_current
                    data:
                      value: 10 # Auto 2 benötigt höheren Anlaufstrom
                  - variables:
                      auto_name: Auto 2
          
          # Ladung freigeben
          - service: switch.turn_on
            target:
              entity_id: switch.wallbox_charge_control
          - service: notify.mobile_app_admin
            data:
              message: "{{ auto_name }} – Smartes Laden gestartet"
    
    # Standard: Laden stoppen wenn keine Bedingung erfüllt
    default:
      - service: switch.turn_off
        target:
          entity_id: switch.wallbox_charge_control
mode: restart