Maya Workflow Kit
The whole Maya workflow in Blender, in one install. Free and open source, Blender 4.5 – 5.2.
翻译准备中
Home Assistant custom integration for Wardrowbe — a self-hosted AI wardrobe manager.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Requires Home Assistant 2026.10.0.dev202609290227 or later.
A Home Assistant custom component for Wardrowbe, the self-hosted AI-powered wardrobe manager. Surfaces wardrobe analytics, outfit lifecycle, and notification history as sensors and event entities, and exposes outfit/wear/wash actions as services.
| Platform | Entities |
|---|---|
sensor | total_items, items_ready, items_processing, items_archived, total_outfits, outfits_this_week, outfits_this_month, acceptance_rate, average_rating, total_wears, most_worn_item, top_color, last_outfit_status, notifications_last_24h |
binary_sensor | api_healthy, has_pending_outfit |
event | outfit (suggested / accepted / rejected / skipped / feedback_submitted), notification (sent / failed), wear (logged), wash (logged) |
All services accept a config_entry_id so multi-account setups can pick which Wardrowbe account to act on.
wardrowbe.suggest_outfit — generate a new outfit recommendation (returns the outfit as a response variable).wardrowbe.accept_outfit / reject_outfit / skip_outfit — outfit_id optional; defaults to the latest pending outfit on that account.wardrowbe.submit_feedback — rating, wore flag, notes.wardrowbe.log_wear / log_wash.wardrowbe.archive_item / restore_item.wardrowbe.test_notification.Each entity event is mirrored on the Home Assistant event bus (so you can use trigger: event instead of trigger: state on the entity):
wardrowbe_outfit_suggested, wardrowbe_outfit_accepted, wardrowbe_outfit_rejected, wardrowbe_outfit_skipped, wardrowbe_outfit_feedback_submitted, wardrowbe_notification_sent, wardrowbe_notification_failed, wardrowbe_wear_logged, wardrowbe_wash_logged.
Every payload includes the originating config_entry_id.
https://github.com/saya6k/ha_wardrowbe as type Integration.Copy custom_components/wardrowbe/ into your Home Assistant config/custom_components/ directory and restart.
The repo ships with a Python 3.14 devcontainer that runs Home Assistant against this checkout:
scripts/develop # HA on :8123 with the integration symlinked in
scripts/test # ruff + mypy + pytest
VS Code → "Reopen in Container" picks up .devcontainer/devcontainer.json and runs scripts/setup for you. scripts/test forwards extra arguments to pytest (e.g. scripts/test tests/test_config_flow.py), and the integration logs to config/home-assistant.log at DEBUG level.
You'll need an OIDC client registered with your provider for Home Assistant. Use HA's redirect URL: https://<your-ha-host>/auth/external/callback. The integration supports both confidential clients (client_id + client_secret) and public clients (client_id only — code_challenge/code_verifier handled automatically). PKCE is a separate toggle from having a secret: a public client must use it, but a confidential client can opt into it too if your provider supports PKCE alongside a secret.
In the integration config flow:
https://wardrowbe.example.com) and pick OIDC / SSO./api/v1/auth/config when available), client ID, client secret if your client has one (leave blank for a public client), and whether to use PKCE (on by default; required if the secret is blank). Scopes default to openid profile email offline_access.id_token for a Wardrowbe JWT and stores both. Tokens refresh automatically; reauthentication is prompted only if refresh fails.Pick Development mode in step 1 and enter the external_id you log in with locally. Only works against Wardrowbe installs running in dev auth mode.
Run the Add Integration flow once per account. Each entry creates its own device, sensors, event entities, and shows up in the config_entry_id selector for service calls.
Open Settings → Devices & Services → Wardrowbe → ⋮ → Reconfigure on an existing entry to change its host, verify_ssl, auth mode, or (for OIDC) issuer/client ID/client secret/scopes — no need to remove and re-add it. Leaving the client secret blank keeps whatever was already stored; it only switches to PKCE if the entry didn't have a secret to begin with.
Each Wardrowbe account registers its own LLM API — Wardrowbe — <account title> — that you attach explicitly to a conversation agent; it's never enabled automatically. In Settings → Voice assistants, edit an agent, and pick it from the LLM API selector to give that agent ten tools covering outfit suggestions, wardrobe stats, and wash tracking. With multiple accounts, each gets its own selectable API. It's also reachable over MCP at /api/mcp/wardrowbe__<entry_id> with an HA admin access token, if you're driving Wardrowbe from an external MCP client instead of HA's own conversation agents.
trigger:
- platform: state
entity_id: event.wardrowbe_test_user_outfit_lifecycle
attribute: event_type
to: suggested
action:
- service: notify.mobile_app_phone
data:
title: New outfit ready
message: "{{ trigger.to_state.attributes.name }}"
Or via the bus:
trigger:
- platform: event
event_type: wardrowbe_outfit_suggested
action:
- service: notify.mobile_app_phone
data:
message: "{{ trigger.event.data.name }}"
trigger:
- platform: time
at: "07:00:00"
action:
- service: wardrowbe.suggest_outfit
data:
config_entry_id: <your-entry-id>
occasion: work
target_date: "{{ now().date() }}"
response_variable: suggestion
- service: notify.mobile_app_phone
data:
message: "Today's outfit: {{ suggestion.name }}"
MIT.