| blueprints/automation/kleckerbox | ||
| examples | ||
| .DS_Store | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
ha-detectorcheck
Home-Assistant-Blueprints rund um Bewegungsmelder — gepflegt von kleckerbox.
Aktuell enthalten: Advanced Custom Motion Sensor with Delay — ein Bewegungsmelder-Blueprint mit einstellbarer Einschalt-Verzögerung, damit kurze Fehlauslösungen (Haustiere, Vorhang im Luftzug, Reflexionen) das Licht nicht mehr triggern.
Inhalt
blueprints/
└── automation/
└── kleckerbox/
└── advanced_motion_light.yaml
examples/
└── automation_example.yaml
Funktionen
| Funktion | Beschreibung |
|---|---|
| Einschalt-Verzögerung | Bewegung muss X Sekunden durchgehend anliegen (for: im Trigger), bevor das Licht angeht. |
| Mehrere Melder | Sensor-Auswahl mit multiple: true — z. B. mehrere Melder pro Raum oder eine Gruppe. |
| Helligkeitsschwelle | Optionaler Lux-Sensor; Licht geht nur an, wenn es dunkler als der Schwellwert ist. |
| Wartezeit (Ausschalten) | Licht bleibt nach der letzten Bewegung X Sekunden an. |
| Zeitfenster | Start-/Endzeit für das Einschalten (Start = Ende ⇒ ganztägig). |
| Sonnenstand | Always / Below horizon / Above horizon, inkl. Grad-Offset. |
| Blocker (global) | Beliebige Entität, die die gesamte Automatisierung freigibt oder sperrt. |
| Blocker (nur Ausschalten) | Verhindert nur das Ausschalten — z. B. input_boolean.filmabend. |
| Ambiente-Szene | Statt Ausschalten wird in einem definierten Zeitfenster eine Szene aktiviert. |
Installation
Variante A — Import über URL (empfohlen)
Home Assistant → Einstellungen → Automatisierungen & Szenen → Blueprints → Blueprint importieren und diese URL einfügen:
https://git.kleckerbox.link/Hassio/ha-detectorcheck/raw/branch/main/blueprints/automation/kleckerbox/advanced_motion_light.yaml
Voraussetzung: Die Gitea-Instanz muss von Home Assistant aus erreichbar sein. Bei einem privaten Repo funktioniert der URL-Import nicht — dann Variante B nutzen.
Variante B — Manuell kopieren
Die Datei nach
<config>/blueprints/automation/kleckerbox/advanced_motion_light.yaml
kopieren und anschließend Entwicklerwerkzeuge → YAML → Automatisierungen neu laden ausführen (oder HA neu starten). Das Blueprint erscheint danach in der Blueprint-Liste.
Konfiguration der Eingaben
| Eingabe | Standard | Hinweis |
|---|---|---|
motion_entity |
– | Sensor(en) oder Gruppe, die zwischen on/off wechseln |
motion_delay |
0 s |
Entprellzeit gegen Fehlauslösungen |
light_target |
– | Ziel (Entität, Gerät, Bereich, Label) |
brightness_level |
100 % |
Helligkeit beim Einschalten |
luminance_sensor |
leer | optional; leer ⇒ keine Helligkeitsprüfung |
luminance_required |
100 lx |
einschalten nur unterhalb dieses Werts |
luminance_unavailable_blocks |
false |
unavailable/unknown blockiert das Einschalten? |
no_motion_wait |
120 s |
Nachlaufzeit |
time_default_start / _end |
00:00:00 |
gleich ⇒ ganztägig |
elevation / elevation_adjustment |
Always / 0 |
Sonnenstand-Bedingung |
automation_blocker (+ _boolean) |
leer / false |
false ⇒ Freigabe bei off, true ⇒ Freigabe bei on |
motion_off_blocker (+ _boolean) |
leer / false |
wie oben, wirkt nur beim Ausschalten |
scene_ambient |
scene.none |
scene.none ⇒ es wird ausgeschaltet |
time_scene_ambient_start / _end |
00:00:00 |
Zeitfenster der Ambiente-Szene |
Verhalten im Detail
Einschalten — Trigger motion_on (off → on, gehalten für motion_delay). Es wird nur
eingeschaltet, wenn alle zutreffen: globaler Blocker frei, Sonnenstand passt, Lux unter Schwelle,
aktuelle Zeit im Zeitfenster.
Ausschalten — Trigger motion_off (on → off, gehalten für no_motion_wait). Ist der
Ausschalt-Blocker aktiv, passiert nichts. Liegt die Zeit im Ambiente-Fenster und ist eine Szene
ungleich scene.none gesetzt, wird die Szene aktiviert — sonst geht das Licht aus.
mode: restart sorgt dafür, dass neue Bewegung einen laufenden Ausschalt-Vorgang verwirft.
Bekannte Fallstricke (bewusst abgesichert)
- Leere optionale Entitäten —
automation_blocker,motion_off_blockerundluminance_sensorwerden überhas_value()bzw. Leer-Prüfungen abgesichert;states[none].state(Original) hätte einen Template-Fehler geworfen. unavailable/unknownbeim Lux-Sensor —float()würde stillschweigend0.0liefern und das Licht immer einschalten. Das Verhalten ist jetzt überluminance_unavailable_blocksexplizit steuerbar.- Manueller „Ausführen"-Lauf — es gibt kein
trigger-Objekt. Statttrigger.to_state.statewerden Trigger-IDs (condition: trigger) verwendet; ein manueller Lauf trifft damit keinen Zweig, statt einen Fehler zu werfen. - Zeitfenster Start = Ende — HA wertet das als „immer wahr" aus, das ist gewollt (ganztägig).
Beispiel
Siehe examples/automation_example.yaml.
Lizenz
MIT — siehe LICENSE.