đ€ Arnold Schwarzensauger - Automationen¶
Kategorie: Saugroboter\ Anzahl Automationen: 4\ Status: â Aktiv\ Letzte Aktualisierung: 2026-01-10 (Bugfix: WohlfĂŒhlzone)
Ăbersicht¶
Arnold Schwarzensauger ist der Saugroboter im System. Die Automationen steuern verschiedene Reinigungsmodi (Wischen + Saugen vs. nur Saugen) und benachrichtigen bei Problemen.
Zusammenhang¶
- Wischen & Saugen: Mo/Mi/Fr mit intensiver Reinigung
- Nur Saugen: Di/Do/Sa/So ohne Wischfunktion
- Fehlerbenachrichtigung: Bei Heimkehr oder nach Laden
- Button-Aktionen: Reminder-System und Wasserwechsel-Tracking
Automationen¶
1. Wischen und Saugen (Mo/Mi/Fr)¶
ID: 1754487053437\
Beschreibung: Startet Arnold an Montag, Mittwoch und Freitag mit intensiver Reinigung (Turbo + Deep Mopping).
Trigger¶
triggers:
# 1. Zeitbasiert: Um 10:00 Uhr
1. trigger: time
at: "10:00:00"
# 2. Bei Abwesenheit (Anatol)
1. trigger: state
entity_id: device_tracker.z_fold7_von_anatol
from: home
to: not_home
for:
minutes: 10
# 3. Bei Abwesenheit (Hase)
1. trigger: state
entity_id: device_tracker.iphone_17_pro
from: home
to: not_home
for:
minutes: 10
Conditions¶
conditions:
1. condition: and
conditions:
# Nur zwischen 10:00 und 18:00 Uhr
1. condition: time
after: "10:00:00"
before: "18:00:00"
# Nur Mo/Mi/Fr
1. condition: template
value_template: ".strftime('%A') in ['Monday', 'Wednesday', 'Friday'] )"
# Noch nicht heute gelaufen
1. condition: state
entity_id: input_boolean.arnie_heute_gelaufen
state: 'off'
# Beide Personen seit 9+ Minuten abwesend
1. condition: state
entity_id: device_tracker.z_fold7_von_anatol
state: not_home
for:
minutes: 9
1. condition: state
entity_id: device_tracker.iphone_17_pro
state: not_home
for:
minutes: 9
Actions¶
actions:
# Schritt 1: Fan Speed auf Turbo
1. target:
entity_id: vacuum.arnold_schwarzensauger
data:
fan_speed: turbo
action: vacuum.set_fan_speed
1. delay: 00:00:05
# Schritt 2: Mop Modus auf Deep
1. target:
entity_id: select.arnold_schwarzensauger_mop_modus
data:
option: deep
action: select.select_option
1. delay: 00:00:05
# Schritt 3: Wisch-IntensitÀt auf Intense
1. target:
entity_id: select.arnold_schwarzensauger_wisch_intensitat
data:
option: intense
action: select.select_option
1. delay: 00:00:05
# Schritt 4: Saugen starten
1. target:
entity_id: vacuum.arnold_schwarzensauger
action: vacuum.start
# Schritt 5: Boolean setzen (verhindert mehrfaches Fahren)
1. target:
entity_id: input_boolean.arnie_heute_gelaufen
action: input_boolean.turn_on
# Schritt 6: Script-Benachrichtigung
1. data: {}
action: script.arnie_wischen
Tipp: Das Script arnie_wischen sendet eine BestÀtigungs-Benachrichtigung: "Arnie hod mid da Hocken augfongt!" (= Arnie hat mit dem Wischen angefangen)
2. Nur Saugen (Di/Do/Sa/So)¶
ID: 1754487519051\
Beschreibung: Startet Arnold an Dienstag, Donnerstag, Samstag und Sonntag mit leichter Reinigung (Balanced, kein Wischen).
Trigger¶
Identisch mit "Wischen und Saugen" (siehe oben).
Conditions¶
conditions:
1. condition: and
conditions:
# Nur zwischen 10:00 und 18:00 Uhr
1. condition: time
after: "10:00:00"
before: "18:00:00"
# Nur Di/Do/Sa/So
1. condition: template
value_template: ".strftime('%A') in ['Tuesday', 'Thursday', 'Saturday', 'Sunday'] )"
# Noch nicht heute gelaufen
1. condition: state
entity_id: input_boolean.arnie_heute_gelaufen
state: 'off'
# Beide Personen seit 9+ Minuten abwesend
1. condition: state
entity_id: device_tracker.z_fold7_von_anatol
state: not_home
for:
minutes: 9
1. condition: state
entity_id: device_tracker.iphone_17_pro
state: not_home
for:
minutes: 9
Actions¶
actions:
# Schritt 1: Fan Speed auf Balanced
1. target:
entity_id: vacuum.arnold_schwarzensauger
data:
fan_speed: balanced
action: vacuum.set_fan_speed
1. delay: 00:00:05
# Schritt 2: Mop Modus auf Standard
1. target:
entity_id: select.arnold_schwarzensauger_mop_modus
data:
option: standard
action: select.select_option
1. delay: 00:00:05
# Schritt 3: Wisch-IntensitÀt auf OFF
1. target:
entity_id: select.arnold_schwarzensauger_wisch_intensitat
data:
option: 'off'
action: select.select_option
1. delay: 00:00:05
# Schritt 4: Saugen starten
1. target:
entity_id: vacuum.arnold_schwarzensauger
action: vacuum.start
# Schritt 5: Boolean setzen
1. target:
entity_id: input_boolean.arnie_heute_gelaufen
action: input_boolean.turn_on
# Schritt 6: Script-Benachrichtigung
1. data: {}
action: script.arnie_saugen
Info: Das Script arnie_saugen sendet: "Arnie hod mid'm Saugen augfongt!" (= Arnie hat mit dem Saugen angefangen)
3. Ankunft: Arnies WohlfĂŒhlzone¶
ID: 1759183019494\
Beschreibung: Benachrichtigt bei Heimkehr oder nach Laden, wenn Arnold Probleme hat (Dock-Fehler, Vakuum-Fehler).
đ§ Bugfix 2026-01-10:\ Top-level Condition wurde entfernt. FrĂŒher wurde die gesamte Automation gestoppt, wenn Arnold zum Zeitpunkt des Triggers KEINEN Fehler hatte (z.B. Sensor = 'unknown'). Jetzt lĂ€uft die Automation immer durch und prĂŒft in den Actions, ob ein Fehler vorliegt â ZuverlĂ€ssigere Benachrichtigungen!
Trigger¶
triggers:
# 1. Heimkehr
1. id: home_arrival
trigger: state
entity_id: device_tracker.z_fold7_von_anatol
from: not_home
to: home
# 2. Handy vom kabellosen LadegerÀt genommen
1. id: wireless_to_none
trigger: state
entity_id: sensor.z_fold_7_charger_type
from: wireless
to: none
Actions¶
actions:
# Bei wireless_to_none: Warte 30 Minuten
1. choose:
1. conditions:
1. condition: trigger
id: wireless_to_none
sequence:
1. delay: 00:30:00
# Variablen setzen
1. variables:
dock_state: ' )'
vac_state: ' )'
refill_age: |
{% set dt = states('input_datetime.last_water_refill') %}
{% if dt in ['unknown','unavailable',''] %}
unbekannt
{% else %}
{% set delta = (as_timestamp(now()) - as_timestamp(dt)) | int %}
{% if delta < 3600 %}
 ) M
{% elif delta < 86400 %}
 ) H
{% elif delta < 604800 %}
 ) D
{% else %}
 ) W
{% endif %}
{% endif %}
arnie_is_docked: ' )'
arnie_room: ' )'
# Nur benachrichtigen wenn Fehler vorliegt
1. choose:
1. conditions:
1. condition: template
value_template: |
{% set dock = states('sensor.arnold_schwarzensauger_dock_fehler') %}
{% set vac = states('sensor.arnold_schwarzensauger_staubsauger_fehler') %}

sequence:
# Benachrichtigung senden
1. data:
title: Arnies WohlfĂŒhlzone
message: |
(Komplexe Fehler-Mapping-Logik mit Dock- und Vakuum-Fehlern)
data:
tag: arnie_arrival_status
actions:
- action: REMIND_30
title: In 30 min
- action: REMIND_120
title: In 2 h
- action: WATER_CHANGED
title: Wasser gewechselt
action: notify.mobile_app_z_fold_7
Funktionsweise:\ 1. Automation wird bei jedem Trigger ausgefĂŒhrt (Heimkehr oder Handy vom LadegerĂ€t) 1. FehlerprĂŒfung erfolgt in den Actions (nicht als top-level Condition) 1. Benachrichtigung wird nur gesendet, wenn tatsĂ€chlich ein Fehler vorliegt 1. Verhindert verpasste Benachrichtigungen bei transienten Sensor-ZustĂ€nden
Erkannte Fehler¶
Dock-Fehler:
- duct_blockage â Luftkanal blockiert
- water_empty â Wischwasser leer
- waste_water_tank_full â Schmutzwassertank voll
- maintenance_brush_jammed â WartungsbĂŒrste blockiert
- dirty_tank_latch_open â Schmutzwassertank-Verschluss offen
- no_dustbin â Kein StaubbehĂ€lter eingesetzt
Vakuum-Fehler:
- lidar_blocked â Lidar blockiert
- bumper_stuck â StoĂfĂ€nger blockiert
- wheels_suspended â RĂ€der hĂ€ngen in der Luft
- main_brush_jammed â HauptbĂŒrste blockiert
- side_brush_jammed â SeitenbĂŒrste blockiert
- robot_trapped â Roboter festgefahren
- low_battery â Akkustand niedrig
- ... und viele weitere (siehe automations.yaml:1084-1136)
4. Ankunfts-Buttons (Reminder & Wasser gewechselt)¶
ID: arrival_buttons_actions\
Beschreibung: Verarbeitet Button-Aktionen aus der Benachrichtigung: Reminder (30 min / 2h) und Wasserwechsel-Tracking.
Trigger¶
triggers:
1. event_type: mobile_app_notification_action
event_data:
action: REMIND_30
trigger: event
1. event_type: mobile_app_notification_action
event_data:
action: REMIND_120
trigger: event
1. event_type: mobile_app_notification_action
event_data:
action: WATER_CHANGED
trigger: event
Actions¶
actions:
1. choose:
# Option 1: Reminder in 30 Minuten
1. conditions:
1. condition: template
value_template: ""
sequence:
1. delay: 00:30:00
1. target:
entity_id: automation.ankunft_arnies_wohlfuehlzone
data:
skip_condition: false
action: automation.trigger
# Option 2: Reminder in 2 Stunden
1. conditions:
1. condition: template
value_template: ""
sequence:
1. delay: 02:00:00
1. target:
entity_id: automation.ankunft_arnies_wohlfuehlzone
data:
skip_condition: false
action: automation.trigger
# Option 3: Wasserwechsel bestÀtigt
1. conditions:
1. condition: template
value_template: ""
sequence:
# Counter erhöhen
1. target:
entity_id: counter.water_refills
action: counter.increment
# Zeitstempel speichern
1. target:
entity_id: input_datetime.last_water_refill
data:
datetime: ".strftime('%Y-%m-%d %H:%M:%S') )"
action: input_datetime.set_datetime
# BestÀtigung senden
1. data:
title: Arnies WohlfĂŒhlzone
message: â
Wasserwechsel gespeichert.
data:
tag: arnie_arrival_status
action: notify.mobile_app_z_fold_7
Tipp: Der Wasserwechsel wird sowohl im Counter water_refills gezÀhlt als auch mit Timestamp in last_water_refill gespeichert.
Verwendete Helper & Entities¶
| Helper | Typ | Zweck |
| input_boolean.arnie_heute_gelaufen | Boolean | Verhindert mehrfaches Fahren pro Tag |
| input_datetime.last_water_refill | DateTime | Zeitpunkt des letzten Wasserwechsels |
| counter.water_refills | Counter | Anzahl der Wasserwechsel |
| vacuum.arnold_schwarzensauger | Vacuum | HauptentitÀt des Saugroboters |
| sensor.arnold_schwarzensauger_dock_fehler | Sensor | Dock-Fehlerzustand |
| sensor.arnold_schwarzensauger_staubsauger_fehler | Sensor | Vakuum-Fehlerzustand |
Changelog¶
2026-01-10: Bugfix WohlfĂŒhlzone¶
- Problem: Automation "Ankunft: Arnies WohlfĂŒhlzone" triggerte nicht zuverlĂ€ssig
- Ursache: Top-level Condition prĂŒfte Fehlerzustand zum Zeitpunkt des Triggers. Wenn Sensoren 'unknown' oder 'ok' meldeten, wurde die Automation komplett gestoppt
- Lösung: Top-level Condition entfernt, FehlerprĂŒfung erfolgt jetzt in den Actions innerhalb eines choose-Blocks
- Ergebnis: Automation lĂ€uft immer durch, Benachrichtigung nur bei tatsĂ€chlichem Fehler â ZuverlĂ€ssigere Alerts!
Siehe auch¶
- Arnold Automation Cleanup - Detaillierte Dokumentation der Bereinigung und Optimierung
- Automation Optimization - Allgemeine Best Practices