A Proactive Closet Management & Schedule-Aware Integration for Home Assistant
Created by Don TranQUiL
Most smart home setups are reactiveβthey turn on lights when you enter a room. Smart Wardrobe is proactive. It treats your clothing like critical inventory. By linking your physical closet to your digital life, the Style Engine ensures you always have the right clothes ready for the right moment.
Stop checking your hamper every morning; let Home Assistant do the thinking for you.
The magic of the Smart Wardrobe relies entirely on your Home Assistant calendar. The integration doesn't just know what clothes you have; it knows when you need them.
Supported Calendars: Smart Wardrobe works with ANY calendar integrated into Home Assistant (e.g., Google Calendar, CalDAV, Apple Calendar, or the HA Local Calendar).
- The Hourly Scan: Every hour, the engine scans your selected calendar entity for any events scheduled in the next 24 hours.
- Event Title Mapping: It looks at the Summary/Title of your calendar events and runs them through a keyword filter to determine what kind of day you have ahead:
- Gym: workout, training, exercise, gym. (e.g., "Morning Workout" triggers the Gym category)
- Office: meeting, work, presentation, office.
- Wedding: formal, wedding.
- Pyjama: sleep, bed, pjs, overnight.
- Spicy: date, anniversary, romance, sexy. (e.g., "Date Night with Sarah" triggers the Spicy category)
- The "Critical Fail" Alert: The system checks the wardrobe category required for your upcoming event. If 100% of the items in that specific category are currently marked as
Dirty, it fires a notification. This gives you a "heads up" to start a wash cycle before you actually need to get dressed.
Say goodbye to entity clutter. For every custom category you create during setup (e.g., Spicy, Pyjama, Office), the integration automatically generates a Master Sensor (e.g., sensor.office_category_status).
- State
Ready: You have at least one clean option available for this category. - State
Not Ready: All items in this category are dirty. Laundry day is no longer optional!
Powered by RestoreEntity, all garment states are saved directly to the Home Assistant database. Your closet status survives server reboots, system updates, and power outages.
This is the heart of the manual control. You can find it under Developer Tools > Actions.
- Target by Entity: Update a single specific shirt (e.g.,
sensor.smart_wardrobe_blue_suit). - Target by Category: Update an entire group at once (e.g., set all "Gym" clothes to
Clean). - States: Choose between
Clean,Worn,Dirty, orWashing.
Prerequisite: Ensure you have at least one working Calendar integration (like Google Calendar or HA Local Calendar) set up in Home Assistant.
- Download the
smart_wardrobefolder from this repository. - Place it inside your Home Assistant
custom_componentsdirectory. - Restart Home Assistant.
- Go to Settings > Devices & Services > Add Integration and search for Smart Wardrobe.
- The Config Flow:
- Select your primary schedule Calendar from the dropdown.
- (Optional) Select a Notification Device (like your mobile phone) to receive alerts. If left blank, alerts will default to the Home Assistant persistent notifications sidebar.
- Click "Configure" on the integration card to start adding your individual clothing items and assigning them to categories!
Stick an NFC tag inside your laundry hamper. When you drop a specific garment in, tap the tag with your phone to mark it dirty without opening the app:
alias: "Wardrobe: Blue Jeans in Hamper"
trigger:
- platform: tag
tag_id: your_nfc_tag_id_here
action:
- service: smart_wardrobe.set_garment_state
data:
entity_id: sensor.smart_wardrobe_blue_jeans
state: DirtyMark your gym clothes as dirty automatically when your calendar workout event ends:
alias: "Wardrobe: Mark Gym Dirty"
trigger:
- platform: calendar
event: end
entity_id: calendar.your_schedule
condition:
- condition: template
value_template: "{{ 'gym' in trigger.calendar_event.summary.lower() }}"
action:
- service: smart_wardrobe.set_garment_state
data:
category: Gym
state: DirtyWhen your smart washing machine finishes a cycle, reset the entire category to clean:
alias: "Wardrobe: Laundry Reset"
trigger:
- platform: state
entity_id: sensor.washing_machine_status
from: "Running"
to: "Finished"
action:
- service: smart_wardrobe.set_garment_state
data:
category: Gym
state: CleanUse the Auto-Entities card (HACS) to create a dynamic "Laundry List" that only appears when items actually need to be washed:
type: custom:auto-entities
card:
type: entities
title: π§Ί Pending Laundry
filter:
include:
- integration: smart_wardrobe
state: "Dirty"
show_empty: falseDeveloped and maintained by Don TranQUiL
If this integration saved your morning or helped you look your best for a "Spicy" date night, please consider giving the repo a β!