diff --git a/README.md b/README.md index 2b92f932..a802f80f 100755 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ https://amzn.to/48jVzZ3 | Amazon Dash Button | Quick actions (office lamp toggle) - [![YAML source: dash_buttons](https://img.shields.io/static/v1?label=YAML&message=dash_buttons&color=lightgrey&logo=github&logoColor=181717)](config/automation/dash_buttons.yaml) | [![Buy](https://img.shields.io/badge/Buy-Dash%20Button-orange?logo=amazon)](https://amzn.to/2dPKZhM) | | Amazon Echo Show | Front door camera pop-up when the August lock unlocks - [![YAML source: august](https://img.shields.io/static/v1?label=YAML&message=august&color=lightgrey&logo=github&logoColor=181717)](config/packages/august.yaml) | [![Buy](https://img.shields.io/badge/Buy-Echo%20Show-orange?logo=amazon)](https://amzn.to/4ptA3YO) | | Amazon Echo Glow | Visual notification light candidate for Home Assistant status cues - [![GitHub issue: 1827](https://img.shields.io/static/v1?label=Issue&message=%231827&color=lightgrey&logo=github&logoColor=181717)](https://github.com/CCOSTAN/Home-AssistantConfig/issues/1827) | [![Buy](https://img.shields.io/badge/Buy-Echo%20Glow-orange?logo=amazon)](https://amzn.to/4wsGUoU) | -| Dreame/Neato vacuum | Cleaning schedules, room queues, Alexa room cleans, and rescue notifications - [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](config/packages/vacuum.yaml), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html) | [![Buy](https://img.shields.io/badge/Buy-Vacuum-orange?logo=amazon)](https://amzn.to/4f7NpFP) | +| Dreame/Neato vacuum | Away-only room queues, sweep/mop phases, family-return cancellation, a four-day cycle-start guard, Alexa room cleans, and rescue notifications - [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](config/packages/vacuum.yaml), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html) | [![Buy](https://img.shields.io/badge/Buy-Vacuum-orange?logo=amazon)](https://amzn.to/4f7NpFP) | | Flux/LED strip controller | Monthly color scenes for exterior - [![YAML source: monthly_color_scene](https://img.shields.io/static/v1?label=YAML&message=monthly_color_scene&color=lightgrey&logo=github&logoColor=181717)](config/script/monthly_color_scene.yaml) | [![Buy](https://img.shields.io/badge/Buy-LED%20Controller-orange?logo=amazon)](https://amzn.to/2jUBSBE) | | Etekcity/433MHz outlet | Accent lighting relays - [![YAML source: garage_entry_light](https://img.shields.io/static/v1?label=YAML&message=garage_entry_light&color=lightgrey&logo=github&logoColor=181717)](config/automation/garage_entry_light.yaml) | [![Buy](https://img.shields.io/badge/Buy-433MHz%20Outlet-orange?logo=amazon)](https://amzn.to/2efNoBP) | diff --git a/config/packages/README.md b/config/packages/README.md index efdc98f8..f39cb82b 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -77,7 +77,7 @@ Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome ent | [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](kiosk_tablet.yaml) | Shares Garage-then-Front-Door priority plus reusable Bedroom header/alert state while keeping each display purpose-built. The Garage view now remains active for three minutes after both doors close before either kiosk returns to its default dashboard. Bedroom retains Fully wake/drift recovery and SleepIQ screen behavior around a clock-free night-watch display; Kitchen retains its clock/forecast, rotating household context, native camera overlays, Kiosk Satellite idle dimming, and an event-driven household policy that corrects master volume to 13% at 08:00 and startup, and invokes the Dim screensaver while `group.bed` is on or the family is away. Nearby rain or lightning starts one five-minute NOAA radar takeover while the sun is above the horizon; afterward, the rotating Storms Approaching banner can replay the latest 20-minute loop while the event remains active. Actionable banner slides reuse one transient detail timer for NWS instructions, the front-door package view, a person-centered family map, open-entry details, Phyn water status with a confirmed valve-restore action, and hot-water recovery status. Sunset restores the ambient wall immediately. True idle panel-off remains disabled on the Crown LineageOS device until it has a reliable motion-wake input. Fully availability/page/app/power checks plus Kitchen connectivity, current-page, and screenshot freshness keep the Systems Kiosks tab truthful; a reachable Kitchen display remains online while stale session timestamps remain visible only in the telemetry panel. Available Kitchen updates remain advisory telemetry, while stable attention attributes preserve useful outage transitions without recording every heartbeat. At 07:00, Home Assistant requests the pending signed installer and waits two minutes for staging before dispatching Joanna to finish the Android confirmation and verify the Kitchen Show returns to its dashboard; an unsuccessful installation is retried at 07:00 the following day until the update entity confirms success. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ChgEu0IDWzc) | `binary_sensor.kiosk_garage_camera_active`, `sensor.kiosk_active_camera_view`, `sensor.bedroom_kiosk_header`, `sensor.kiosk_household_alert`, `binary_sensor.kiosk_rain_radar_weather_event`, `binary_sensor.kiosk_rain_radar_active`, `timer.kitchen_kiosk_radar_display`, `input_text.kitchen_kiosk_detail_view`, `timer.kitchen_kiosk_detail_display`, `script.kitchen_kiosk_show_event`, `script.kitchen_kiosk_show_detail`, `script.kitchen_kiosk_restore_phyn_water`, `binary_sensor.bedroom_kiosk_needs_attention`, `binary_sensor.kiosk_devices_need_attention`, `sensor.alarm_panel_1_current_page`, `button.alarm_panel_1_load_start_url`, `binary_sensor.kitchen_kiosk_should_be_on`, `number.kitchen_show_volume_2`, `light.kitchen_show_screen_2`, `button.kitchen_show_postpone_screensaver_2`, `button.kitchen_show_take_screenshot_2`, `sensor.kitchen_show_active_camera_view_2`, `automation.kitchen_kiosk_satellite_update_joanna_dispatch` | | [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](powerwall.yaml) | Track Tesla Powerwall grid status, keep a restart-safe outage anchor, publish monitor-only staged resilience recommendations from Home Assistant, handle immediate household load shedding, and alert if the Powerwall stays low after grid power returns. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hR_0lFEE2bA) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/06/tesla-powerwall-home-assistant-watchdog.html) | `binary_sensor.powerwall_grid_status`, `sensor.powerwall_*`, `input_datetime.power_resilience_outage_started`, `sensor.power_resilience_recommended_stage`, `script.notify_live_activity`, `repairs.create` | | [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Remind the garage and parents to plug in the Model Y after a low-battery arrival, alert both parents when a reported tire drops below 38.5 PSI, and issue one critical parents push plus a garage announcement when persisted JuiceBox current reaches 20 A. A restoring latch prevents repeat current alarms. Five continuous minutes without a running and healthy JuicePassProxy creates a Systems problem and tells the garage and parents not to charge; recovery is also reported to the parents. Plug-in alerts snooze for 24 hours; tire alerts and Joanna's morning-briefing action item share 1-day and 3-day snoozes. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) | `sensor.spaceship_battery_level`, `sensor.tire_pressure_*`, `sensor.juicebox_current_last_known`, `sensor.juicepassproxy_state`, `sensor.juicepassproxy_health`, `binary_sensor.juicepassproxy_monitoring_degraded`, `switch.spaceship_charge`, `cover.large_garage_door`, `input_boolean.tesla_high_charge_rate_alert_active`, `input_datetime.tesla_model_y_*`, `input_datetime.tesla_tire_pressure_snooze_until`, `notify.alexa_media_garage`, `script.notify_engine` | -| [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame vacuum orchestration with room tracking, push alerts, Activity feed, Repairs issues on errors, and Alexa one-off room-clean switches. | `input_select.l10s_vacuum_phase`, `sensor.l10s_vacuum_error`, `repairs.create` | +| [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame away-only vacuum orchestration with room tracking, sweep/mop phases, a four-day start guard, family-return task cancellation, push alerts, and Alexa one-off room cleans. | `input_select.l10s_vacuum_phase`, `sensor.l10s_vacuum_error`, `repairs.create` | | [![YAML source: hass_agent_homepc](https://img.shields.io/static/v1?label=YAML&message=hass_agent_homepc&color=lightgrey&logo=github&logoColor=181717)](hass_agent_homepc.yaml) | Mirrors PC lock/unlock state to the office lamp and wakes `CARLO-HOMEPC` on workday morning bed exits. | `sensor.carlo_homepc_carlo_homepc_sessionstate`, `button.carlo_home`, `switch.office_lamp_switch` | | [![YAML source: sleepiq](https://img.shields.io/static/v1?label=YAML&message=sleepiq&color=lightgrey&logo=github&logoColor=181717)](sleepiq.yaml) | Sleep Number presence/snore automations plus a zero-filtered 14-day score summary; Overview Health keeps the detailed scores, vitals, pressure, and bed controls. | `group.bed`, `binary_sensor.sleepnumber_carlo_carlo_is_in_bed`, `binary_sensor.sleepnumber_carlo_stacey_is_in_bed`, `sensor.sleepnumber_carlo_carlo_sleep_score`, `sensor.sleepnumber_carlo_stacey_sleep_score`, `sensor.sleep_score_14_day_averages`, `number.sleepnumber_carlo_carlo_firmness`, `select.sleepnumber_carlo_foundation_preset_right` | | [![YAML source: finance](https://img.shields.io/static/v1?label=YAML&message=finance&color=lightgrey&logo=github&logoColor=181717)](finance.yaml) | Yahoo Finance sensor bundle for portfolio glances and Lovelace cards. | `sensor.tsla`, `sensor.aapl`, `sensor.amzn`, `sensor.msft` | @@ -96,8 +96,9 @@ Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome ent ### Dreame vacuum automations - Logic lives in [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml): continuous four-phase loop (sweep main, sweep baths, mop main, mop baths) driven by `input_select.l10s_vacuum_phase` and `input_text.l10s_vacuum_room_queue`, with per-room notifications and automatic reseeding between phases. -- Uses the Dreame HACS integration with segment IDs to enforce bathrooms last in each sweep/mop pass, dock on arrival, and auto-run if idle for 3+ days. -- Family-return docking now ignores away windows shorter than 20 minutes so brief walks do not interrupt an active run, but still docks if the family stays home for 10 minutes. +- Uses the Dreame HACS integration with segment IDs to enforce bathrooms last in each sweep/mop pass. An away departure starts or resumes the remaining queue; after a full four-phase cycle the On-Demand switch turns off and the queue resets. +- Family return stops the active task before docking, including mid-cycle mop returns. The remaining room queue is retained until the next departure; a 10-minute home trigger provides a retry if the first arrival edge was missed. +- At 5 PM, a new cycle may start only while the family is away and at least four full days after the last phase started. Vacation Mode does not disable this four-day cadence. - Room queue advances on a 2-minute dwell in `sensor.l10s_vacuum_current_room` (queue = remaining rooms); phase changes happen when an empty queue is reseeded and the vacuum is not actively cleaning. - One-off room cleaning for Alexa uses `input_boolean.l10s_vacuum_clean_*` (example: "Kitchen Clean") and runs a segment job without touching or checking the phased queue. - Formal Dining (room 17/dock) is excluded from phased queues; clean it via the one-off toggle. @@ -123,7 +124,7 @@ When a package has a dedicated blog post or video, I link it right inside the YA | [![YAML source: phynplus](https://img.shields.io/static/v1?label=YAML&message=phynplus&color=lightgrey&logo=github&logoColor=181717)](phynplus.yaml) | Leak-detection response loop with valve state, maintenance guard, Activity Feed context, Repairs tracking, and critical push recovery. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/xbhgWnomFYI) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/06/home-assistant-leak-detection-automations.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2020/05/phyn-plus-smart-water-shutoff-device.html) | | [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](powerwall.yaml) | Monitoring Tesla Powerwall health + what to automate when the grid drops. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hR_0lFEE2bA) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/06/tesla-powerwall-home-assistant-watchdog.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2018/01/going-green-to-save-some-green-in-2018.html) | | [![YAML source: vacation_mode](https://img.shields.io/static/v1?label=YAML&message=vacation_mode&color=lightgrey&logo=github&logoColor=181717)](vacation_mode.yaml) | Road-trip- or sustained-away Vacation Mode with restart-safe state, house-sitter visit tracking, reminders, missed-visit alerts, secure-house checks, and vacation house digests that keep Powerwall status visible. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/15kRcFaVV2Y) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacation-mode-house-sitter-automation.html) | -| [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame away-only cleaning, room queues, sweep/mop phases, Alexa one-off room commands, and rescue notifications. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2020/05/home-assistant-neato-vacuum-automation.html) | +| [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame away-only cleaning with queued sweep/mop phases; family return ends the active task, and a new 5 PM start requires four days since the last phase; Alexa one-off cleans and rescue notifications. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2020/05/home-assistant-neato-vacuum-automation.html) | | [![YAML source: pihole_ha](https://img.shields.io/static/v1?label=YAML&message=pihole_ha&color=lightgrey&logo=github&logoColor=181717)](pihole_ha.yaml) | Sync Pi-hole blocking state across HA DNS nodes. | | | [![YAML source: grafana.disabled](https://img.shields.io/static/v1?label=YAML&message=grafana.disabled&color=lightgrey&logo=github&logoColor=181717)](grafana.yaml.disabled) | Rendering Grafana dashboards to images for Lovelace and social posts. | [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2018/01/going-green-to-save-some-green-in-2018.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2018/09/re-installing-tesla-solar-panels-again.html) · [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/BartadUzGOA) | | [![YAML source: august](https://img.shields.io/static/v1?label=YAML&message=august&color=lightgrey&logo=github&logoColor=181717)](august.yaml) | Smart lock control and status from HA. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/UdcCeAyo9Ak?si=O-f607NHbRLKZxao) | @@ -142,7 +143,7 @@ These are the devices that power the packages above, plus tracked hardware imple | Rachio sprinkler controller | [![YAML source: rachio](https://img.shields.io/static/v1?label=YAML&message=rachio&color=lightgrey&logo=github&logoColor=181717)](rachio.yaml) + [![YAML source: 10_sprinklers](https://img.shields.io/static/v1?label=YAML&message=10_sprinklers&color=lightgrey&logo=github&logoColor=181717)](../dashboards/infrastructure/views/10_sprinklers.yaml) + [![YAML source: home_water_sections](https://img.shields.io/static/v1?label=YAML&message=home_water_sections&color=lightgrey&logo=github&logoColor=181717)](../dashboards/infrastructure/partials/home_water_sections.yaml) | Rain skips, active-zone status, trigger-derived last-run history, and dashboard controls. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/a--1iTDWhSo) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-sprinkler-automation-rachio.html) | [![Buy](https://img.shields.io/badge/Buy-Rachio-orange?logo=amazon)](https://amzn.to/2eoPKBW) | | Tesla Powerwall 2 | [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](powerwall.yaml) | Grid outages kick off status pings, load-shed scripts, and low-charge charging watchdog alerts. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hR_0lFEE2bA) | [![Buy](https://img.shields.io/badge/Buy-Powerwall-orange?logo=tesla)](https://amzn.to/3UM4BZ5) | | Google Nest thermostat | [![YAML source: climate](https://img.shields.io/static/v1?label=YAML&message=climate&color=lightgrey&logo=github&logoColor=181717)](climate.yaml) | Presence/weather/grid-aware cooling targets, humidity pulses, runtime filter reminders, and condenser-line cleanout tracking. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/nScl2JxYSB8) | [![Buy](https://img.shields.io/badge/Buy-Nest%20Thermostat-orange?logo=google)](https://amzn.to/4olpINw) | -| Dreame/Neato vacuum | [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Away-only room queues, sweep/mop phases, Alexa room cleans, rescue notifications, and voice callouts. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA) and [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html). | [![Buy](https://img.shields.io/badge/Buy-Vacuum-orange?logo=amazon)](https://amzn.to/4f7NpFP) | +| Dreame/Neato vacuum | [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Away-only room queues, sweep/mop phases, family-return task cancellation, a four-day cycle-start guard, Alexa room cleans, rescue notifications, and voice callouts. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/KKOWSKuF5jA) and [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-vacuum-automations-dreame-2026.html). | [![Buy](https://img.shields.io/badge/Buy-Vacuum-orange?logo=amazon)](https://amzn.to/4f7NpFP) | | NodeMCU contact sensor | [![YAML source: alarm](https://img.shields.io/static/v1?label=YAML&message=alarm&color=lightgrey&logo=github&logoColor=181717)](alarm.yaml) | ESP8266 contact nodes feed the alarm matrix. | [![Buy](https://img.shields.io/badge/Buy-Motion%20Node-orange?logo=amazon)](https://amzn.to/2oUgj5i) | | Roku streaming device | [![YAML source: roku](https://img.shields.io/static/v1?label=YAML&message=roku&color=lightgrey&logo=github&logoColor=181717)](roku.yaml) | Media presence drives lighting, announcements, and scenes. | [![Buy](https://img.shields.io/badge/Buy-Roku-orange?logo=roku)](https://amzn.to/2Ctp8cr) | diff --git a/config/packages/vacuum.yaml b/config/packages/vacuum.yaml index a75c2542..356baaef 100755 --- a/config/packages/vacuum.yaml +++ b/config/packages/vacuum.yaml @@ -19,7 +19,8 @@ # - If docked+completed still has queue entries, treat queue as stale and clear it before phase advance. # - Mop phases use `sweeping_and_mopping` instead of mop-only. # - One-off room clean booleans ignore the queue; they only run when the vacuum is docked/idle. -# - Family-return docking ignores away windows under 20 minutes to avoid short-walk false stops, but docks after 10 minutes home if the family stays put. +# - Family return cancels the active task before docking; the remaining queue waits for the next departure. +# - Docked phase coordination and the four-day idle start require the family to be away. # - Formal Dining (room 17/dock) is excluded from phased queues; clean via one-off toggle. # - Phase advancement no longer depends on a separate "ready" latch. ###################################################################### @@ -416,6 +417,13 @@ automation: - condition: state entity_id: input_boolean.guest_mode state: 'off' + - condition: or + conditions: + - condition: state + entity_id: group.family + state: 'not_home' + - condition: trigger + id: on_demand - condition: template value_template: "{{ not is_state('vacuum.l10s_vacuum', 'cleaning') }}" - condition: template @@ -447,69 +455,46 @@ automation: entity_id: input_boolean.l10s_vacuum_on_demand to: 'off' id: on_demand_off - variables: - family_away_seconds: > - {% if trigger.id == 'family_home' - and trigger.from_state is not none - and trigger.from_state.state == 'not_home' - and trigger.from_state.last_changed is not none %} - {{ (as_timestamp(now()) - as_timestamp(trigger.from_state.last_changed)) | int(0) }} - {% else %} - 999999 - {% endif %} condition: - - condition: template - value_template: > - {{ is_state('vacuum.l10s_vacuum', 'cleaning') or is_state('vacuum.l10s_vacuum', 'returning') or is_state('vacuum.l10s_vacuum', 'paused') }} + - condition: or + conditions: + - condition: state + entity_id: input_boolean.l10s_vacuum_on_demand + state: 'on' + - condition: state + entity_id: vacuum.l10s_vacuum + state: 'cleaning' + - condition: state + entity_id: vacuum.l10s_vacuum + state: 'returning' + - condition: state + entity_id: vacuum.l10s_vacuum + state: 'paused' action: - - choose: - - conditions: - - condition: template - value_template: "{{ trigger.id == 'family_home' and family_away_seconds < 1200 }}" - sequence: - - service: script.send_to_logbook - data: - topic: "VACUUM" - message: > - Family returned after {{ ((family_away_seconds | int(0)) / 60) | round(1) }} - minutes; leaving vacuum running unless we stay home for 10 minutes. - - conditions: - - condition: template - value_template: > - {{ trigger.id == 'family_home_stable' and is_state('input_boolean.l10s_vacuum_on_demand', 'on') }} - sequence: - - service: vacuum.pause - target: - entity_id: vacuum.l10s_vacuum - - delay: 00:00:10 - - service: vacuum.return_to_base - target: - entity_id: vacuum.l10s_vacuum - - service: input_boolean.turn_off - target: - entity_id: input_boolean.l10s_vacuum_on_demand - - service: script.send_to_logbook - data: - topic: "VACUUM" - message: "Family stayed home for 10 minutes; docking vacuum and disabling On-Demand." - - conditions: - - condition: template - value_template: "{{ trigger.id in ['family_home', 'on_demand_off'] }}" - sequence: - - service: vacuum.pause - target: - entity_id: vacuum.l10s_vacuum - - delay: 00:00:10 - - service: vacuum.return_to_base - target: - entity_id: vacuum.l10s_vacuum - - service: input_boolean.turn_off - target: - entity_id: input_boolean.l10s_vacuum_on_demand - - service: script.send_to_logbook - data: - topic: "VACUUM" - message: "Family home; docking vacuum and disabling On-Demand." + - service: input_boolean.turn_off + target: + entity_id: input_boolean.l10s_vacuum_on_demand + - if: + - condition: template + value_template: >- + {{ states('sensor.l10s_vacuum_task_status') not in ['completed', 'unknown', 'unavailable'] + or states('vacuum.l10s_vacuum') in ['cleaning', 'returning', 'paused'] }} + then: + - service: vacuum.stop + target: + entity_id: vacuum.l10s_vacuum + - delay: '00:00:02' + - if: + - condition: template + value_template: "{{ not is_state('vacuum.l10s_vacuum', 'docked') }}" + then: + - service: vacuum.return_to_base + target: + entity_id: vacuum.l10s_vacuum + - service: script.send_to_logbook + data: + topic: "VACUUM" + message: "Family home or On-Demand disabled; ending the active task and docking vacuum." - alias: 'Away Vacuum: Confirm Room Cleaned' id: c581c570-55b0-4acd-8b5d-53cfb486cc2a @@ -632,15 +617,17 @@ automation: queue_raw: "{{ states('input_text.l10s_vacuum_room_queue') | default('', true) | trim }}" queue_ints: "{{ queue_raw | regex_findall('[0-9]+') | map('int') | select('gt', 0) | list }}" task_status: "{{ states('sensor.l10s_vacuum_task_status') }}" - condition: - - condition: template - value_template: >- - {{ - is_state('input_boolean.l10s_vacuum_on_demand', 'on') - and is_state('vacuum.l10s_vacuum', 'docked') - }} action: - delay: "00:00:01" + - condition: state + entity_id: group.family + state: 'not_home' + - condition: state + entity_id: input_boolean.l10s_vacuum_on_demand + state: 'on' + - condition: state + entity_id: vacuum.l10s_vacuum + state: 'docked' - choose: - conditions: - condition: template @@ -680,7 +667,8 @@ automation: - platform: template value_template: > {{ - is_state('input_boolean.l10s_vacuum_on_demand', 'on') + is_state('group.family', 'not_home') + and is_state('input_boolean.l10s_vacuum_on_demand', 'on') and is_state('vacuum.l10s_vacuum', 'docked') and (states('input_text.l10s_vacuum_room_queue') | default('', true) | trim == '') and not is_state('sensor.l10s_vacuum_task_status', 'completed') @@ -692,7 +680,8 @@ automation: - condition: template value_template: >- {{ - is_state('input_boolean.l10s_vacuum_on_demand', 'on') + is_state('group.family', 'not_home') + and is_state('input_boolean.l10s_vacuum_on_demand', 'on') and is_state('vacuum.l10s_vacuum', 'docked') and states('input_text.l10s_vacuum_room_queue') | default('', true) | trim == '' and task_status != 'completed'