Skip to content
BotServBotServ
Home AssistantOllamaSprachassistentSmart HomeKI

Home Assistant mit Ollama integrieren

Home Assistant mit Ollama integrieren. Sprachassistent, Automatisierungen mit KI, lokale Sprachsteuerung und Praxisbeispiele.

S

schutzgeist

6 min read
Home Assistant mit Ollama integrieren

Home Assistant mit Ollama integrieren

Was dieser Artikel über Home Assistant mit Ollama behandelt

  • Wie Du Ollama als KI-Backend für Home Assistant einrichtest.
  • Wie Du den lokalen Sprachassistenten mit Ollama nutzt.
  • Wie Automatisierungen mit KI-Entscheidungen aussehen.
  • Praxisbeispiele für natürliche Sprachbefehle und intelligente Steuerung.
  • Best Practices für Performance und Datenschutz.

Einleitung: Home Assistant mit Ollama verständlich erklärt

Home Assistant hat einen eingebauten Sprachassistenten (Assist). Standardmäßig nutzt er Cloud-Dienste. Mit Ollama als Backend bleibt alles lokal: Du sprichst, Whisper transkribiert, Ollama versteht und entscheidet, Home Assistant führt aus. Keine Daten verlassen Dein Netzwerk.

Dieser Artikel richtet sich an Anwender, die Home Assistant mit lokaler KI verbinden wollen. Grundlagen findest Du in Home Assistant und Ollama.

Warum brauche ich Home Assistant mit Ollama?

Standard-Sprachassistenten (Alexa, Google) senden Deine Sprachbefehle in die Cloud. Home Assistant mit Ollama verarbeitet alles lokal: „Mach das Licht im Wohnzimmer an” wird von Whisper transkribiert, von Ollama interpretiert und von Home Assistant ausgeführt, ohne dass ein Byte Dein Haus verlässt.

Home Assistant mit Ollama kurz erklärt

Ollama wird als Conversation-Agent in Home Assistant eingebunden. Assist (der Sprachassistent) nutzt dann Ollama statt Cloud-Dienste. Zusätzlich kannst Du Ollama in Automatisierungen und Skripten für intelligente Entscheidungen nutzen.

Der Kerngedanke lautet: Lokale KI als Gehirn für Dein Smart Home.

Für wen ist dieser Artikel gedacht?

  • Home-Assistant-Nutzer, die lokale KI wollen.
  • Privacy-Bewusste, die keine Cloud-Sprachassistenten wollen.
  • Self-Hoster, die Ollama im Smart Home nutzen.
  • Tinkerer, die natürliche Sprachsteuerung bauen.

Vorkenntnisse in Home Assistant und Ollama sind hilfreich.

Wichtige Begriffe

  • Home Assistant - Smart-Home-Plattform. Wann nützlich: die Basis.
  • Assist - HA-Sprachassistent. Wann nützlich: für Sprachsteuerung.
  • Ollama - Lokaler Modellserver. Wann nützlich: das KI-Backend.
  • Whisper - Speech-to-Text. Wann nützlich: für Spracheingabe.
  • Piper - Text-to-Speech. Wann nützlich: für Sprachausgabe.
  • Conversation Agent - KI-Backend für Assist. Wann nützlich: die Verbindung.
  • Wyoming - Protokoll für Sprachdienste. Wann nützlich: für Whisper/Piper.

Setup: Ollama als Conversation Agent

1. Ollama läuft

# Ollama läuft auf http://ollama:11434
# Modell laden:
ollama pull llama3.1

2. Ollama-Integration in HA

# configuration.yaml
ollama:
  url: http://ollama:11434

Oder über die UI:

  1. Settings → Devices & Services → Add Integration
  2. „Ollama” suchen
  3. URL eingeben: http://ollama:11434
  4. Modell wählen: llama3.1

3. Assist konfigurieren

# configuration.yaml
conversation:
  intents:
    # Custom Intents hier

In der UI:

  1. Settings → Voice Assistants → Assist
  2. Conversation Agent: Ollama
  3. STT: Whisper (lokal)
  4. TTS: Piper (lokal)

Sprachassistent komplett lokal

Spracheingabe
    │
    ▼
Whisper (STT) ──► Text
    │
    ▼
Ollama (LLM) ──► Versteht Befehl
    │
    ▼
Home Assistant ──► Führt aus
    │
    ▼
Piper (TTS) ──► Sprachausgabe

Wyoming-Container für Whisper und Piper

version: "3.8"

services:
  whisper:
    image: rhasspy/wyoming-whisper:latest
    container_name: whisper
    restart: unless-stopped
    ports:
      - "10300:10300"
    volumes:
      - whisper_data:/data
    command: --model small --language de
    networks:
      - smarthome

  piper:
    image: rhasspy/wyoming-piper:latest
    container_name: piper
    restart: unless-stopped
    ports:
      - "10200:10200"
    volumes:
      - piper_data:/data
    command: --voice de_DE-thorsten-high
    networks:
      - smarthome

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    networks:
      - smarthome

  homeassistant:
    image: homeassistant/home-assistant:latest
    container_name: homeassistant
    restart: unless-stopped
    ports:
      - "8123:8123"
    volumes:
      - ha_config:/config
    networks:
      - smarthome

volumes:
  whisper_data:
  piper_data:
  ollama_data:
  ha_config:

networks:
  smarthome:
    driver: bridge

Praxisbeispiel 1: Natürliche Sprachbefehle

# Home Assistant Automation
automation:
  - alias: "KI-Lichtsteuerung"
    trigger:
      - platform: conversation
        command:
          - "Mach das Licht [im] {room} [an|aus]"
    action:
      - service: light.toggle
        target:
          area_id: "{{ trigger.slots.room }}"

Oder komplexer mit Ollama:

automation:
  - alias: "KI-Befehl interpretieren"
    trigger:
      - platform: event
        event_type: voice_command
    action:
      - service: ollama.generate
        data:
          prompt: "Interpretiere: '{{ trigger.event.data.command }}'
                   Verfügbare Aktionen: licht_an, licht_aus, temperatur,
                   musik_an, musik_aus, rollo_hoch, rollo_runter
                   Antworte als JSON: {action, entity, params}"
        response_variable: ki_response
      - choose:
          - conditions: "{{ 'licht' in ki_response.text }}"
            sequence:
              - service: light.toggle
                data:
                  entity_id: "{{ ki_response.entity }}"

Praxisbeispiel 2: Intelligente Temperatursteuerung

automation:
  - alias: "KI-Klima"
    trigger:
      - platform: time_pattern
        minutes: "/15"
    action:
      - service: ollama.generate
        data:
          prompt: |
            Aktuelle Daten:
            - Außentemperatur: {{ states('sensor.aussentemperatur') }}°C
            - Innentemperatur: {{ states('sensor.innentemperatur') }}°C
            - Luftfeuchtigkeit: {{ states('sensor.luftfeuchtigkeit') }}%
            - Anwesend: {{ states('person.max') }}
            - Uhrzeit: {{ now().strftime('%H:%M') }}
            - Tag: {{ now().strftime('%A') }}

            Was sollte die Heizung/Klima tun?
            Antworte: heizen, kuehlen, aus, oder lueften
            + kurze Begründung
        response_variable: ki_decision
      - choose:
          - conditions: "{{ 'heizen' in ki_decision.text }}"
            sequence:
              - service: climate.set_hvac_mode
                data:
                  hvac_mode: heat
          - conditions: "{{ 'kuehlen' in ki_decision.text }}"
            sequence:
              - service: climate.set_hvac_mode
                data:
                  hvac_mode: cool

Praxisbeispiel 3: Täglicher Briefing

automation:
  - alias: "Morgen-Briefing"
    trigger:
      - platform: time
        at: "07:30:00"
    action:
      - service: ollama.generate
        data:
          prompt: |
            Erstelle ein kurzes Morgen-Briefing:
            - Wetter: {{ states('weather.home') }}
            - Außentemperatur: {{ states('sensor.aussentemperatur') }}°C
            - Heute: {{ now().strftime('%A, %d.%m.%Y') }}
            - Kalender: {{ states('calendar.personal') }}
            - Strompreis: {{ states('sensor.strompreis') }} Cent/kWh

            Fasse alles in 3 Sätzen zusammen.
        response_variable: briefing
      - service: notify.notify
        data:
          title: "Morgen-Briefing"
          message: "{{ briefing.text }}"
      - service: tts.speak
        data:
          message: "{{ briefing.text }}"
          media_player_entity_id: media_player.kueche

Praxisbeispiel 4: Sicherheits-Analyse

automation:
  - alias: "KI-Sicherheitsanalyse"
    trigger:
      - platform: state
        entity_id: binary_sensor.bewegung
        to: "on"
    condition:
      - condition: time
        after: "23:00"
        before: "06:00"
    action:
      - service: ollama.generate
        data:
          prompt: |
            Nächtliche Bewegung erkannt:
            - Sensor: {{ trigger.entity_id }}
            - Zeit: {{ now().strftime('%H:%M') }}
            - Personen zu Hause: {{ states('group.personen') }}
            - Letzte Alarme: {{ states('sensor.letzte_alarme') }}

            Ist das verdächtig? Antworte: normal/verdaechtig + Grund
        response_variable: analyse
      - choose:
          - conditions: "{{ 'verdaechtig' in analyse.text }}"
            sequence:
              - service: notify.notify
                data:
                  title: "Sicherheitsalarm"
                  message: "{{ analyse.text }}"
              - service: camera.snapshot
                data:
                  entity_id: camera.flur

Sicherheitshinweise

  • Alles lokal: Ollama, Whisper, Piper, alle lokal. Keine Cloud nötig.
  • Token: HA-Token für Ollama-Integration minimal halten.
  • Validierung: KI-Entscheidungen für kritische Aktionen (Tür öffnen, Alarm) sollten von Menschen bestätigt werden. Siehe Menschliche Freigabe.
  • Logging: Protokolliere KI-Entscheidungen. Siehe Protokollierung.

Typische Stolpersteine

  • Modell zu langsam: Große Modelle (>13B) sind langsam für Echtzeit-Sprache. Nutze llama3.1:8b oder phi3.
  • Whisper-Modell: small ist ein guter Kompromiss. large ist genauer, aber langsamer.
  • Deutsche Stimme: Für Piper nutze de_DE-thorsten-high für gute Qualität.
  • Kontext zu lang: Zu viele Entities im Prompt überlasten das Modell. Filtere relevante.
  • KI falsch interpretiert: „Licht an” kann mehrere Entities betreffen. Präzise Prompts mit Entity-Liste.

Key Takeaways:

  • Home Assistant + Ollama = komplett lokaler Sprachassistent.
  • Whisper für STT, Ollama für Verständnis, Piper für TTS.
  • KI in Automatisierungen für intelligente Entscheidungen.
  • Alles lokal, keine Cloud, keine Daten raus.
  • Kleine Modelle (8B) für Echtzeit, große für Analyse.

FAQ

Wie verbinde ich Ollama mit Home Assistant?

Über die Ollama-Integration in Home Assistant: Settings → Devices & Services → Add Integration → Ollama → URL eingeben.

Kann ich den Sprachassistenten komplett lokal betreiben?

Ja. Whisper für Speech-to-Text, Ollama für Verständnis, Piper für Text-to-Speech. Alles läuft lokal, keine Cloud nötig.

Welches Ollama-Modell für Smart Home?

llama3.1:8b oder phi3:mini für schnelle Sprachbefehle. Für komplexe Analysen (Berichte, Trends) kannst Du ein größeres Modell nutzen.

Welches Whisper-Modell?

small für gute Balance aus Geschwindigkeit und Genauigkeit. tiny für sehr schnell (weniger genau). large für maximale Genauigkeit (langsam).

Wie schnell ist die Sprachsteuerung?

Whisper small: 1-2 Sekunden für Transkription. Ollama 8B: 2-5 Sekunden für Interpretation. Gesamt: 3-7 Sekunden von Sprache zu Aktion.

Bleiben meine Daten privat?

Ja, komplett. Whisper, Ollama und Piper laufen lokal. Keine Sprachdaten verlassen Dein Netzwerk. Das ist der Hauptvorteil gegenüber Alexa/Google.

Welche Hardware brauche ich?

Für Whisper small + llama3.1:8b: ca. 10 GB VRAM. Eine RTX 3060 12GB reicht. Für CPU-only: deutlich langsamer, aber machbar.

Was, wenn die KI falsch versteht?

KI kann Befehle falsch interpretieren. Für kritische Aktionen (Tür öffnen, Alarm) sollte eine Bestätigung erforderlich sein. Präzise Prompts helfen.

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge