Ratgeber/Home Assistant: Scripts vs. Automationen – Unterschied und Einsatz
Home Assistant: Scripts vs. Automationen – Unterschied und Einsatz

Home Assistant: Scripts vs. Automationen – Unterschied und Einsatz

·0 Aufrufe

Dieser Artikel kann Affiliate-Links enthalten. Wenn du ĂŒber diese Links einkaufst, erhalten wir möglicherweise eine kleine Provision — ohne Mehrkosten fĂŒr dich. Das hilft uns, weiterhin kostenlose Inhalte zu erstellen.

home-assistantautomationscriptseinsteiger

Wenn du in Home Assistant AblĂ€ufe automatisierst, begegnen dir zwei Werkzeuge: Automationen und Scripts. Auf den ersten Blick sehen sie Ă€hnlich aus, beide fĂŒhren Aktionen aus. Aber sie haben grundlegend unterschiedliche Aufgaben. Wer den Unterschied versteht, baut saubere, wartbare und fehlerfreie Automationen.

Der Grundunterschied: Trigger vs. Aufruf

Die Faustregel ist einfach:

đŸ’»
Raspberry Pi 5 8GB RAMLeistungsstarker Mini-PC fĂŒr Home Assistant, die Basis fĂŒr ein lokales Smart Home.* Affiliate-Link, wir erhalten eine kleine Provision
Bei Amazon ansehen →
  • Automation = reagiert automatisch auf einen Trigger (Ereignis, Zustand, Zeit). Sie hat einen Auslöser, optionale Bedingungen und Aktionen. Eine Automation lĂ€uft von allein, wenn ihr Trigger feuert.
  • Script = eine wiederverwendbare Aktionsfolge, die manuell oder von einer Automation aufgerufen wird. Ein Script hat keinen eigenen Trigger, es wartet darauf, aktiviert zu werden.

Stell dir eine Automation wie einen Sensor mit angeschlossener Maschine vor: Der Sensor (Trigger) startet die Maschine (Aktionen) automatisch. Ein Script ist die Maschine allein, jemand muss sie einschalten, aber du kannst sie an verschiedene Sensoren anschließen.

Home assistant scripts vs automationen unterschied: practical guide overview
Home assistant scripts vs automationen unterschied
Kernregel: Wenn eine Aktionsfolge nur bei einem bestimmten Ereignis laufen soll, nutze eine Automation. Wenn die gleiche Aktionsfolge von mehreren Stellen aufgerufen werden soll (mehrere Automationen, Dashboard-Button, Sprachbefehl), lagere sie in ein Script aus.
🐳

Synology DS423+ fĂŒr Docker

Unsere Empfehlung passend zu diesem Thema

* Affiliate-Link, du zahlst nicht mehr, wir erhalten eine kleine Provision

Bei Amazon ansehen →

Automation: Aufbau und Beispiel

Eine Automation besteht aus drei Teilen:

  1. Trigger: Was löst die Automation aus? (Zustandswechsel, Zeitpunkt, Event, Webhook, MQTT, Template ...)
  2. Conditions (optional): Unter welchen zusÀtzlichen Bedingungen soll sie laufen? (Tageszeit, Anwesenheit, Zustand eines anderen GerÀts ...)
  3. Actions: Was soll passieren? (Licht schalten, Nachricht senden, Service aufrufen ...)

Beispiel: Bewegungslicht im Flur

automation:
 - alias: "Flur Bewegungslicht"
 description: "Licht an bei Bewegung, aus nach 3 Minuten"
 trigger:
 - platform: state
 entity_id: binary_sensor.flur_bewegung
 to: "on"
 condition:
 - condition: numeric_state
 entity_id: sensor.flur_helligkeit
 below: 50
 action:
 - service: light.turn_on
 target:
 entity_id: light.flur
 data:
 brightness_pct: 80
 color_temp_kelvin: 3000
 - wait_for_trigger:
 - platform: state
 entity_id: binary_sensor.flur_bewegung
 to: "off"
 for: "00:03:00"
 - service: light.turn_off
 target:
 entity_id: light.flur
 data:
 transition: 5

Diese Automation hat einen klaren Trigger (Bewegung), eine Bedingung (dunkel genug) und Aktionen (Licht an, warten, Licht aus). Sie lÀuft vollstÀndig automatisch.

Home assistant scripts vs automationen unterschied: step-by-step visual example
Home assistant scripts vs automationen unterschied

Script: Aufbau und Beispiel

Ein Script hat keinen Trigger und keine Conditions. Es besteht nur aus einer Sequenz von Aktionen, optional mit Variablen fĂŒr FlexibilitĂ€t.

Beispiel: TĂŒrklingel-Routine

script:
 tuerklingel_routine:
 alias: "Tuerklingel-Routine"
 description: "Benachrichtigung, Kamerabild, Flutlicht"
 mode: single
 sequence:
 - service: light.turn_on
 target:
 entity_id: light.eingang_flutlicht
 data:
 brightness_pct: 100
 - service: camera.snapshot
 target:
 entity_id: camera.haustuer
 data:
 filename: "/config/www/snapshots/tuerklingel_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
 - service: notify.mobile_app_thorstens_iphone
 data:
 title: "Tuerklingel"
 message: "Jemand steht vor der Tuer."
 data:
 image: "/local/snapshots/tuerklingel_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
 - delay: "00:05:00"
 - service: light.turn_off
 target:
 entity_id: light.eingang_flutlicht

Dieses Script kann jetzt von mehreren Stellen aufgerufen werden: von einer Automation (TĂŒrklingel-Sensor), von einem Dashboard-Button, von einem Sprachbefehl oder sogar von einem NFC-Tag. Die Logik ist einmal definiert und wird ĂŒberall wiederverwendet.

Praxistipp: Lagere jede Aktionsfolge, die lĂ€nger als 5 Zeilen ist und die du potenziell mehrfach nutzen könntest, in ein Script aus. Das hĂ€lt deine Automationen schlank und macht Änderungen einfacher, du musst nur das Script anpassen, nicht jede Automation. Mehr zum effizienten Automatisieren findest du unter 6 Automationen sofort in Home Assistant.

Die vier Script-Modes

Jedes Script hat einen Mode, der festlegt, was passiert, wenn das Script aufgerufen wird, obwohl es bereits lÀuft:

1. single (Standard)

Das Script lĂ€uft nur einmal gleichzeitig. Ein erneuter Aufruf wĂ€hrend der AusfĂŒhrung wird ignoriert und erzeugt eine Warnung im Log. Ideal fĂŒr Aktionen, die nicht unterbrochen werden dĂŒrfen (z. B. TĂŒrklingel-Routine).

Home assistant scripts vs automationen unterschied: helpful reference illustration
Home assistant scripts vs automationen unterschied
script:
 beispiel_single:
 mode: single
 sequence:
 - service: light.turn_on
 target:
 entity_id: light.flur
 - delay: "00:05:00"
 - service: light.turn_off
 target:
 entity_id: light.flur

2. restart

Ein erneuter Aufruf stoppt die laufende Instanz und startet das Script von vorn. Perfekt fĂŒr zeitgesteuerte Aktionen, die bei erneutem Trigger zurĂŒckgesetzt werden sollen (z. B. Bewegungslicht mit Timer-Reset).

script:
 flur_licht_timer:
 mode: restart
 sequence:
 - service: light.turn_on
 target:
 entity_id: light.flur
 - delay: "00:03:00"
 - service: light.turn_off
 target:
 entity_id: light.flur

Jede neue Bewegung startet den 3-Minuten-Timer neu, ohne dass das Licht zwischendurch ausgeht.

3. queued

Erneute Aufrufe werden in eine Warteschlange gestellt und nacheinander abgearbeitet. NĂŒtzlich fĂŒr Aktionen, die sich nicht ĂŒberschneiden dĂŒrfen, aber alle ausgefĂŒhrt werden sollen (z. B. TTS-Durchsagen).

script:
 tts_durchsage:
 mode: queued
 max: 5
 fields:
 nachricht:
 description: "Text der Durchsage"
 sequence:
 - service: tts.speak
 target:
 entity_id: tts.piper
 data:
 media_player_entity_id: media_player.kueche
 message: "{{ nachricht }}"
 - delay: "00:00:03"

Mit max: 5 werden maximal 5 Durchsagen in die Warteschlange gestellt. Weitere Aufrufe werden verworfen.

4. parallel

Mehrere Instanzen laufen gleichzeitig. FĂŒr unabhĂ€ngige Aktionen, die sich nicht gegenseitig beeinflussen (z. B. Benachrichtigungen an verschiedene EmpfĂ€nger).

script:
 benachrichtigung_senden:
 mode: parallel
 max: 10
 fields:
 titel:
 description: "Titel der Nachricht"
 text:
 description: "Nachrichtentext"
 sequence:
 - service: notify.mobile_app_thorstens_iphone
 data:
 title: "{{ titel }}"
 message: "{{ text }}"
HĂ€ufiger Fehler: Viele Einsteiger verwenden single (den Standard) fĂŒr Bewegungslichter. Das fĂŒhrt dazu, dass der Timer nicht zurĂŒckgesetzt wird, wenn wĂ€hrend der Wartezeit erneut Bewegung erkannt wird, das Licht geht trotz Bewegung aus. Lösung: mode: restart fĂŒr alle zeitgesteuerten Aktionen, die bei erneutem Trigger neu starten sollen. Mehr zum Debuggen solcher Probleme findest du unter Automationen debuggen: Traces und Logs.

Scripts aus Automationen aufrufen

Das wahre Potenzial von Scripts entfaltet sich, wenn du sie aus Automationen heraus aufrufst. Damit trennst du Auslöser (Automation) von Aktion (Script):

automation:
 - alias: "Tuerklingel gedrueckt"
 trigger:
 - platform: state
 entity_id: binary_sensor.tuerklingel
 to: "on"
 action:
 - service: script.turn_on
 target:
 entity_id: script.tuerklingel_routine

 - alias: "NFC-Tag Eingang gescannt"
 trigger:
 - platform: tag
 tag_id: "nfc-tag-eingang-123"
 action:
 - service: script.turn_on
 target:
 entity_id: script.tuerklingel_routine

Beide Automationen lösen dasselbe Script aus. Wenn du die TĂŒrklingel-Routine Ă€ndern willst (z. B. einen zweiten Lautsprecher hinzufĂŒgen), musst du nur das Script anpassen, nicht beide Automationen.

Variables an Scripts ĂŒbergeben

Scripts können Variablen (Fields) akzeptieren, was sie noch flexibler

macht:

script:
 licht_szene:
 alias: "Licht-Szene setzen"
 fields:
 raum:
 description: "Welcher Raum?"
 helligkeit:
 description: "Helligkeit in Prozent"
 farbtemp:
 description: "Farbtemperatur in Kelvin"
 sequence:
 - service: light.turn_on
 target:
 entity_id: "light.{{ raum }}"
 data:
 brightness_pct: "{{ helligkeit }}"
 color_temp_kelvin: "{{ farbtemp }}"
automation:
 - alias: "Abend-Szene Wohnzimmer"
 trigger:
 - platform: sun
 event: sunset
 action:
 - service: script.licht_szene
 data:
 raum: "wohnzimmer"
 helligkeit: 60
 farbtemp: 2700

Blueprints: Automationen teilen und importieren

Ein Blueprint ist eine Vorlage fĂŒr eine Automation oder ein Script. Du definierst die Logik einmal und kannst sie mehrfach mit unterschiedlichen Parametern nutzen. Blueprints sind besonders nĂŒtzlich, wenn du die gleiche Automation in verschiedenen RĂ€umen verwenden willst.

Aus dem Bewegungslicht-Beispiel wird ein

Blueprint:

blueprint:
 name: "Bewegungslicht mit Timer"
 description: "Licht bei Bewegung an, nach X Minuten aus"
 domain: automation
 input:
 bewegungsmelder:
 name: "Bewegungsmelder"
 selector:
 entity:
 domain: binary_sensor
 licht:
 name: "Licht"
 selector:
 entity:
 domain: light
 timer_minuten:
 name: "Abschaltzeit (Minuten)"
 default: 3
 selector:
 number:
 min: 1
 max: 30

trigger:
 - platform: state
 entity_id: !input bewegungsmelder
 to: "on"
action:
 - service: light.turn_on
 target:
 entity_id: !input licht
 - wait_for_trigger:
 - platform: state
 entity_id: !input bewegungsmelder
 to: "off"
 for:
 minutes: !input timer_minuten
 - service: light.turn_off
 target:
 entity_id: !input licht

Diesen Blueprint kannst du jetzt fĂŒr jeden Raum einzeln einsetzen, mit unterschiedlichen Bewegungsmeldern, Lichtern und Abschaltzeiten. Mehr dazu im Ratgeber Home Assistant Blueprints: Automationen teilen und importieren.

Zusammenfassung: Verwende Automationen fĂŒr alles, das auf einen Trigger reagieren soll. Verwende Scripts fĂŒr wiederverwendbare Aktionsfolgen, die von mehreren Stellen aufgerufen werden. WĂ€hle den richtigen Script-Mode (single, restart, queued, parallel) je nach Anwendungsfall. Und nutze Blueprints, um bewĂ€hrte Muster einfach zu vervielfĂ€ltigen. Diese Trennung hĂ€lt dein Home-Assistant-System sauber und wartbar. Weitere Automations-Ideen findest du unter 8 Automationen fĂŒr jedes Smart Home.
🧭Teil unseres Themen-Hubs: Smart-Home-Automation→

Veröffentlicht durch die SmartHomePraxis-Redaktion. Veröffentlicht am 16. August 2026.

Verantwortlich i.S.d. § 18 MStV: siehe Impressum.

Fehler entdeckt oder ergÀnzende Erfahrung? korrektur@smarthomepraxis.de

Artikel teilen
🏠

Smart-Home-Tipps direkt ins Postfach

Neue Anleitungen, Vergleiche und Praxis-Tipps – kein Spam, jederzeit abbestellbar.

🎁 Gratis dazu: Smart-Home-Starter-Guide (PDF)

Das könnte dich auch interessieren

Kommentare (0)

Kommentar schreiben

Kommentare werden vor der Veröffentlichung geprĂŒft.