Add blueprint support and refresh documentation

This commit is contained in:
2026-03-23 16:42:52 +01:00
parent 48f8ef6265
commit a55281938c
7 changed files with 415 additions and 227 deletions

1
.idea/changes.md generated
View File

@@ -18,6 +18,7 @@
- Added the broader product roadmap to the persistent project prompt: blueprints, templates, Lovelace designs, and more category support as future store targets. - Added the broader product roadmap to the persistent project prompt: blueprints, templates, Lovelace designs, and more category support as future store targets.
- Started the blueprint/category-aware installer preparation: installation metadata now distinguishes install type and installed paths, repo payloads expose install targets, and the active panel shows install-target context for future non-integration categories. - Started the blueprint/category-aware installer preparation: installation metadata now distinguishes install type and installed paths, repo payloads expose install targets, and the active panel shows install-target context for future non-integration categories.
- Added initial blueprint install-path handling groundwork so the codebase is no longer fully hard-wired to `custom_components/`. - Added initial blueprint install-path handling groundwork so the codebase is no longer fully hard-wired to `custom_components/`.
- Bumped the integration version from `0.7.4` to `0.7.5` and added the `0.7.5` release entry to `CHANGELOG.md` for blueprint support and the documentation refresh.
### Documented ### Documented
- Captured the verified project identity from the repository and README files: Bahmcloud Store is a Home Assistant custom integration intended to behave like a provider-neutral store for custom integrations, similar to HACS but broader than GitHub-only workflows. - Captured the verified project identity from the repository and README files: Bahmcloud Store is a Home Assistant custom integration intended to behave like a provider-neutral store for custom integrations, similar to HACS but broader than GitHub-only workflows.

4
.idea/start prompt.md generated
View File

@@ -130,5 +130,5 @@ Recommended workflow for future tasks:
6. If and only if a release is being prepared with user approval, fold release-worthy changes into `CHANGELOG.md`. 6. If and only if a release is being prepared with user approval, fold release-worthy changes into `CHANGELOG.md`.
Current release baseline: Current release baseline:
- `manifest.json` version is `0.7.4` - `manifest.json` version is `0.7.5`
- Latest documented release in `CHANGELOG.md` is `0.7.4` dated `2026-03-23` - Latest documented release in `CHANGELOG.md` is `0.7.5` dated `2026-03-23`

View File

@@ -11,6 +11,18 @@ Sections:
--- ---
## 0.7.5 - 2026-03-23
### Added
- Initial blueprint install support with deployment to the Home Assistant blueprints folder.
- Category-aware install metadata including install type, install target, and installed paths.
- Install target details in the repository view for supported content categories.
### Changed
- Store documentation refreshed to match the current feature set, including pinned repositories, release notes, and blueprint support.
- Non-integration content handling is now prepared for category-specific install strategies instead of assuming `custom_components` only.
- Frontend asset version updated so the latest store UI changes load immediately after deployment.
## 0.7.4 - 2026-03-23 ## 0.7.4 - 2026-03-23
### Added ### Added

View File

@@ -1,50 +1,86 @@
# Bahmcloud Store (BCS) for Home Assistant # Bahmcloud Store (BCS) for Home Assistant
Bahmcloud Store (BCS) is a provider-neutral store for Home Assistant custom integrations. Bahmcloud Store (BCS) is a provider-neutral store for Home Assistant content hosted on git platforms.
It allows you to browse, install, update, downgrade, uninstall and restore integrations It currently supports installing and managing:
directly from the Home Assistant UI.
This README is intended for **end users**. - Integrations
- Blueprints
Supported providers today:
- GitHub
- GitLab
- Gitea / Forgejo-style hosts
- Custom repositories added by URL when the host behaves compatibly
This README is for end users.
---
## Features
- Browse repositories from the official BCS index, HACS integration source, and custom repository URLs
- Install, update, downgrade, and uninstall integrations directly from Home Assistant
- Install blueprint repositories directly into the Home Assistant blueprints folder
- Read repository README files inside the store UI
- View release notes for provider releases
- Pin repositories so important items stay easy to find
- Use native Home Assistant update entities for installed integrations
- Create and restore backups for integration installs and updates
--- ---
## Installation ## Installation
### Option A: Home Assistant OS / Supervised (Add-on recommended) ### Option A: Home Assistant OS / Supervised
1. Open **Settings Add-ons Add-on Store** 1. Open **Settings -> Add-ons -> Add-on Store**
2. Add the Bahmcloud Add-on repository 2. Add the Bahmcloud add-on repository:
`https://git.bahmcloud.de/bahmcloud/addons` `https://git.bahmcloud.de/bahmcloud/addons`
3. Install **Bahmcloud Store Installer** 3. Install **Bahmcloud Store Installer**
4. Start the add-on 4. Start the add-on
5. Restart Home Assistant 5. Restart Home Assistant
Installed to: Installed to:
/config/custom_components/bahmcloud_store `/config/custom_components/bahmcloud_store`
--- ### Option B: Manual Installation
### Option B: Manual Installation (Container / Core)
1. Download the latest release 1. Download the latest release
2. Copy `custom_components/bahmcloud_store` to: 2. Copy `custom_components/bahmcloud_store` to:
/config/custom_components/bahmcloud_store `/config/custom_components/bahmcloud_store`
3. Restart Home Assistant 3. Restart Home Assistant
--- ---
## Repository Sources ## Repository Sources
- **BCS Official** - **BCS Official**: repositories from the Bahmcloud store index
- **HACS** - **HACS**: optional official HACS integration source
- **Custom** - **Custom**: repositories you add manually by URL
---
## Current Content Support
### Integrations
- Expected repository content: `custom_components/<domain>/...`
- Install target: `/config/custom_components/<domain>`
- Supports install, update, uninstall, backup, restore, version selection, and update entities
- Restart required after install, update, uninstall, or restore
### Blueprints
- Expected repository content: `blueprints/...`
- Install target: `/config/blueprints/...`
- Supports install and uninstall through the store
- No restart is normally required for blueprint deployment
--- ---
## Documentation ## Documentation
Developer documentation: - Developer documentation: `README_DEVELOPER.md`
https://git.bahmcloud.de/bahmcloud/bahmcloud_store/src/branch/main/README_DEVELOPER.md - Full user guide: `README_FULL.md`
Full technical documentation:
https://git.bahmcloud.de/bahmcloud/bahmcloud_store/src/branch/main/README_FULL.md

View File

@@ -1,115 +1,159 @@
# Bahmcloud Store Developer Documentation # Bahmcloud Store - Developer Documentation
For contributors and maintainers. For contributors and maintainers.
## Architecture ## Project Scope
Repositories: Bahmcloud Store is evolving from an integration-only store into a broader Home Assistant git-based content store.
1) Installer Add-on (HAOS/Supervised) ```https://git.bahmcloud.de/bahmcloud/addons```
2) Core Integration ```https://git.bahmcloud.de/bahmcloud/bahmcloud_store```
3) Store Index (`store.yaml`) ```https://git.bahmcloud.de/bahmcloud/ha_store```
### Integration Layout Currently supported install categories:
custom_components/bahmcloud_store/ - Integrations
- __init__.py: setup, panel registration, schedule background after HA started - Blueprints
- core.py: index merge, enrichment, install/update/uninstall, backups, restore, caching
- providers.py: GitHub/GitLab/Gitea repo info + latest version helpers Planned categories:
- metadata.py: read bcs.yaml / hacs.json / hacs.yaml
- storage.py: persistent storage (installed, custom, repo cache, hacs cache) - Templates
- views.py: HTTP API endpoints - Lovelace / dashboard designs
- update.py: UpdateEntity implementation - Additional content types with category-specific install logic
- repairs.py: (optional) Repairs flow for restart
- panel/: UI (panel.js, styles.css, etc.) ## Repository Layout
- manifest.json
Repositories related to the project:
1. Installer add-on:
`https://git.bahmcloud.de/bahmcloud/addons`
2. Core integration:
`https://git.bahmcloud.de/bahmcloud/bahmcloud_store`
3. Store index:
`https://git.bahmcloud.de/bahmcloud/ha_store`
## Integration Layout
`custom_components/bahmcloud_store/`
- `__init__.py`: setup, panel registration, delayed startup refresh, periodic refresh
- `core.py`: index merge, repo enrichment, install/update/uninstall, backup/restore, category-aware install groundwork
- `providers.py`: provider detection, latest version lookup, release notes, README fetching
- `metadata.py`: reads `bcs.yaml`, `hacs.json`, and `hacs.yaml`
- `storage.py`: persistent storage for installed repos, settings, caches
- `views.py`: HTTP API
- `update.py`: Home Assistant update entities
- `repairs.py`: restart-required repair flow
- `panel/`: active frontend panel
- `manifest.json`
## Runtime Model ## Runtime Model
- RepoItem (merged) - `RepoItem`: merged repository model used by the UI and backend
- Installed repos (storage) - Installed repositories: persisted in Home Assistant storage
- Repo cache (persisted enrichment) - Settings: persistent UI and behavior settings such as HACS enablement and pinned repositories
- HACS meta cache (mapping owner/repo → name/description) - Repo cache: provider and metadata enrichment cache
- HACS cache: display metadata cache for HACS integration repositories
## Background
- Heavy work only after `homeassistant_started`
- Refresh: if index unchanged → installed-only refresh + schedule enrichment
- Opening a repo triggers `ensure_repo_details()` and persists to cache
## Providers
- GitHub: API/releases/tags/atom + raw readme
- GitLab: API releases/tags + raw readme
- Gitea: API releases/tags + raw readme
- Custom: API or HTTPS Request to your Git Provider
## Metadata ## Metadata
- Prefer `bcs.yaml`, fallback `hacs.json` / `hacs.yaml` Metadata priority:
- Populate name/description/category/author/maintainer
## HTTP API (excerpt) 1. `bcs.yaml`
2. `hacs.yaml`
3. `hacs.json`
Base: /api/bcs Common fields:
- GET /api/bcs
- POST /api/bcs?action=refresh
- GET /api/bcs/readme?repo_id=...
- GET /api/bcs/versions?repo_id=...
- POST /api/bcs/install?repo_id=...&version=...
- POST /api/bcs/update?repo_id=...&version=...
- POST /api/bcs/uninstall?repo_id=...
- GET /api/bcs/backups?repo_id=...
- POST /api/bcs/restore?repo_id=...&backup_id=...
- (optional) POST/DELETE custom_repo
## Update Entities
- Unique id bcs:<repo_id>
- Compare installed ref vs latest ref
- Dispatcher signal on refresh/install/update
## Storage
- JSON in HA `.storage`
- async read/write helpers
- repo cache applied on startup
## Contributing to **BCS Official**
1) Add pull request to `https://git.bahmcloud.de/bahmcloud/ha_store` (with your integration added to) `store.yaml`)
2) Add entry:
```yaml ```yaml
- name: Your Integration Name name: Example Project
url: https://your-git-hoster.com/your-org/your-repo description: Short description
category: Category (actually only "Integrations" are supported) category: Integrations
author: Example Author
maintainer: Example Maintainer
``` ```
3) (Recommended) Add `bcs.yaml` to your repo:
Category currently matters operationally:
- `Integrations` -> install from `custom_components/...`
- `Blueprint` / `Blueprints` -> install from `blueprints/...`
## Supported Install Categories
### Integrations
- Expected source layout: `custom_components/<domain>/manifest.json`
- Install target: `/config/custom_components/<domain>`
- Supports backup, restore, update entities, and restart-required flow
### Blueprints
- Expected source layout: `blueprints/...`
- Install target: `/config/blueprints/...`
- Initial support is focused on direct install and uninstall
- Category-aware groundwork is in place so future content types can use their own install strategies
## HTTP API
Base path: `/api/bcs`
- `GET /api/bcs`
- `POST /api/bcs?action=refresh`
- `GET /api/bcs/settings`
- `POST /api/bcs/settings`
- `GET /api/bcs/readme?repo_id=...`
- `GET /api/bcs/release_notes?repo_id=...&ref=...`
- `GET /api/bcs/versions?repo_id=...`
- `GET /api/bcs/repo?repo_id=...`
- `POST /api/bcs/install?repo_id=...&version=...`
- `POST /api/bcs/update?repo_id=...&version=...`
- `POST /api/bcs/uninstall?repo_id=...`
- `GET /api/bcs/backups?repo_id=...`
- `POST /api/bcs/restore?repo_id=...&backup_id=...`
- `POST /api/bcs/restart`
- `DELETE /api/bcs/custom_repo?id=...`
## Current UI Features
- Search, source filter, category filter, state filter, sorting
- HACS integration source toggle
- Pinned repositories
- README rendering
- Release notes rendering
- Version selection
- Backup restore UI for integrations
## Contributing to the Official Store Index
Add a repository to the BCS store index in `ha_store`.
Example index entry:
```yaml ```yaml
name: Your Integration Name - name: Example Project
description: One-liner for the store (optional, store information are also catched from git repository) url: https://your-git-hoster.example/org/repo
category: Integrations (actually only supported) category: Blueprint
author: Your Name
maintainer: Your Handle
``` ```
4) Open PR; validation checks: reachable, has `custom_components/<domain>/manifest.json`, sensible metadata
5) Merge → appears in **BCS Official** after refresh
## Coding Guidelines Recommended repository metadata:
- Async I/O, no blocking event loop ```yaml
- Respect provider rate limits name: Example Project
- Clean logging around refresh/install/update/restore description: One-line description
- Keep UI responsive; throttle updates category: Blueprint
author: Example Author
maintainer: Example Maintainer
```
--- Validation should match the category:
## Planed Features - Integrations: verify `custom_components/<domain>/manifest.json`
- Blueprints: verify `blueprints/...`
- Add Downloads and install for category "Dashboard" ## Design Direction
- Add Downloads and install for category "Template"
- Add Downloads and install for category "Theme"
- Add Downloads and install for category "Blueprint"
-
The long-term architecture should remain category-aware:
- category -> validation strategy
- category -> install target
- category -> backup / restore behavior
- category -> UI affordances
This is especially important before Templates and Lovelace support are added, because those should stay compatible with established HACS expectations where possible.

View File

@@ -1,27 +1,30 @@
# Bahmcloud Store Full User Guide # Bahmcloud Store - Full User Guide
This guide explains **all features** of Bahmcloud Store (BCS) for Home Assistant. This guide explains the current feature set of Bahmcloud Store (BCS) for Home Assistant.
It is written for users and admins who want a complete, practical reference.
> BCS lets you install & manage custom integrations from **GitHub/GitLab/Gitea** and your own sources, with backups, restore, and version pinning. BCS is a git-based store UI that can currently manage integrations and blueprints from multiple repository providers.
--- ---
## Contents ## Contents
- Concepts - Concepts
- Sources (BCS / HACS / Custom) - Sources
- Supported Content Types
- UI Overview - UI Overview
- Finding Integrations - Finding Repositories
- Installing - Installing
- Selecting Versions / Downgrading - Selecting Versions
- Updating - Updating
- Uninstalling - Uninstalling
- Backups & Restore - Pinned Repositories
- Release Notes
- Backups and Restore
- Custom Repositories - Custom Repositories
- HACS Repositories - HACS Repositories
- Update Entities in Home Assistant - Update Entities
- Background Caching & Performance - Performance and Caching
- Restart Required - Restart Behavior
- Troubleshooting - Troubleshooting
- FAQ - FAQ
@@ -29,189 +32,281 @@ It is written for users and admins who want a complete, practical reference.
## Concepts ## Concepts
- **Sources**: ### Sources
- **BCS Official** → entries from index (`store.yaml`) made and added from Bahmcloud
- **HACS** → official HACS integrations list (toggleable) - **BCS Official**: repositories from the official Bahmcloud index
- **Custom** → manual entries you add locally - **HACS**: optional HACS integration source
- **Install location**: `/config/custom_components/<domain>` - **Custom**: repositories you add manually by URL
- **Backup**: BCS keeps preupdate copies in `/config/.bcs_backups/<domain>/<timestamp>/`
### Installed Ref
BCS stores the installed ref separately from any version declared inside the repository itself.
That makes update checks more reliable when a repository uses tags or releases that do not exactly match its internal manifest version.
--- ---
## Sources (BCS / HACS / Custom) ## Supported Content Types
Each repository card shows a **source badge**: ### Integrations
- **BCS Official** from Bahmcloud index
- **HACS** from HACS official list (enable with the toggle)
- **Custom** added by you
You can **filter by source** with the **Source** dropdown (All / BCS Official / HACS / Custom). - Source layout: `custom_components/<domain>/...`
- Install target: `/config/custom_components/<domain>`
- Supports install, update, downgrade, uninstall, backups, restore, and update entities
- Restart required after install, update, uninstall, or restore
### Blueprints
- Source layout: `blueprints/...`
- Install target: `/config/blueprints/...`
- Supports install and uninstall through the store
- Intended for blueprint repositories without integration-specific folder structures
--- ---
## UI Overview ## UI Overview
Top bar: Store view:
- **Search** (name/description)
- **Source** filter (All/BCS Official/HACS/Custom)
- **Category** filter (actually only Integrations are supported)
- **State-Filter** filter (All/Installed/Not installed/Update available/Custom repos)
- **Sort** (name (A-Z)/Updates first/Installed first)
- **HACS official** toggle (on/off)
Repository card: - Search
- Name, description, badges (source, installed/update), category - Source filter
- Buttons: **Install / Update / Uninstall** - Category filter
- **Readme** expandable - State filter
- **Open** to see details (available versions, metadata) - Sorting
- HACS source toggle
- Pinned repository filtering and sorting
Repository detail view:
- README rendering
- Release notes for provider releases
- Version selector
- Install / Update / Uninstall actions
- Pin / Unpin action
- Backup restore action for integrations
- Category and install target information
--- ---
## Finding Integrations ## Finding Repositories
1. Use **Search** to filter by keywords. 1. Use **Search** to filter by name, description, or URL.
2. Combine with **Category** and **Source**. 2. Use **Source** to switch between BCS Official, HACS, and Custom repositories.
3. Sort to surface desired results. 3. Use **Category** to focus on a specific content type.
4. Use **Pinned** filtering or sorting to surface repositories you watch often.
Descriptions and latest versions are filled progressively by a background process; opening a repo loads details on demand. Descriptions, metadata, and latest versions may appear progressively because BCS enriches repository information in the background.
--- ---
## Installing ## Installing
1. Open a repository. ### Integration Install
2. Optionally select **Install version** (default: **Latest**).
3. Click **Install** and wait for confirmation.
4. Follow the **Restart required** prompt. (or use restart toggle in HomeAssistant Settings)
**What happens internally** 1. Open a repository.
- BCS downloads the repository ZIP for the selected version (release/tag/branch). 2. Optionally select a version.
- It extracts all integrations found under `custom_components/<domain>` and deploys them. 3. Click **Install**.
- It saves the **installed version (ref)** to track updates reliably, even if the repos own `manifest.json` is wrong/outdated. 4. Restart Home Assistant when prompted.
Internally, BCS:
- downloads the selected repository archive
- extracts `custom_components/...`
- installs every valid integration found there
- stores the installed ref
- creates backups before overwriting existing integration folders
### Blueprint Install
1. Open a blueprint repository.
2. Optionally select a version.
3. Click **Install**.
Internally, BCS:
- downloads the selected repository archive
- extracts `blueprints/...`
- copies blueprint files into `/config/blueprints/...`
Blueprint installs normally do not require a Home Assistant restart.
--- ---
## Selecting Versions / Downgrading ## Selecting Versions
- Use the **Install version** dropdown in the detail view. - Use the version selector in the detail view.
- Choose **Latest** or a previous **release/tag**. - `Latest` uses the newest provider release or tag BCS can determine.
- Installing a chosen ref **pins** the integration to that ref (no surprise updates). - You can install an older release or tag when available.
- You can upgrade again later by selecting **Latest** and clicking **Update**. - Release notes are shown when the selected version is a provider release with a body.
--- ---
## Updating ## Updating
- The **Update** button appears when `latest_version` differs from your **installed version (ref)**. ### Integrations
- Updates are also available via **Home Assistant → Settings → Updates** (native Update entity).
- Clicking **Update** runs the same safe pipeline as **Install** (with backup).
**Tip:** Opening a repository detail view forces an immediate check for the latest version for that repo. - The **Update** button appears when the latest ref differs from the installed ref.
- Updates are also available through **Settings -> Updates** via native Home Assistant update entities.
- Integration updates create backups before overwriting files.
### Blueprints
- Blueprint repositories can also be reinstalled from another selected version.
- The current blueprint path handling is focused on direct deployment to the blueprints folder.
--- ---
## Uninstalling ## Uninstalling
- Click **Uninstall** on the repository. ### Integrations
- BCS removes the integration folders under `custom_components/<domain>`.
- The installed state is cleared in the Store. - Removes the installed integration directories from `/config/custom_components`
- Restart Home Assistant if prompted. - Clears the installed state in BCS
- Usually requires a restart
### Blueprints
- Removes the installed blueprint files recorded by BCS
- Cleans up empty directories below `/config/blueprints` when possible
--- ---
## Backups & Restore ## Pinned Repositories
Before an update/install over existing files, BCS creates a backup: You can pin repositories to keep important items easy to find.
``` Current behavior:
/config/.bcs_backups/<domain>/<timestamp>/
```
**Restore**: - Pin or unpin from the detail view
1. Open the repository in store. - Filter the store by pinned repositories
2. Select **Restore…**. - Sort the store with pinned repositories first
3. Pick one of the **last backups** (up to retention limit). (Version details are showed in ()) - Pinned repositories show a dedicated badge in the store overview
4. Confirm BCS restores files and reconciles installed version to the restored ref. - Pinned state is persisted in settings
5. Restart Home Assistant if prompted.
If the old backup lacks metadata, BCS besteffort derives the installed version from the backups `manifest.json`, or marks the ref as `restored:<timestamp>` so updates remain possible. ---
## Release Notes
When a provider release has a release body, BCS can show release notes in the detail view for the selected version.
Notes:
- Release notes are available for real releases, not every tag or branch
- If no provider release body exists, BCS shows a clear not-available state
---
## Backups and Restore
Integration installs and updates create backups before overwriting existing files.
Backup path:
`/config/.bcs_backups/<domain>/<timestamp>/`
Restore flow:
1. Open the repository detail
2. Click **Restore**
3. Select a backup
4. Confirm restore
5. Restart Home Assistant if prompted
Restore is currently intended for integrations.
--- ---
## Custom Repositories ## Custom Repositories
You can add any public repository (GitHub/GitLab/Gitea/Any other Git Hoster). BCS will attempt to detect: You can add any public repository URL that matches a supported provider style and contains supported content.
- provider & default branch
- latest version (release/tag/atom)
- repo metadata (prefer `bcs.yaml`, fallback `hacs.json/hacs.yaml`)
- readme (common filenames)
**Add an custom repository**(typical flows): BCS attempts to detect:
- From the Store UI
1. If you start up Bahmcloud Store, you are on tab "Store"
2. Go to tab "Manage"
3. Add Repository URL (Example: ``https://git.bahmcloud.de/bahmcloud/bahmcloud_store``) and (optional) Name you want to show up (will be grabbed from GIT Repository)
4. Repository show up in Custom Repositories-list and in "Store" Tab, if available
**Remove an custom repository**(typical flows): - provider
- From the Store UI - default branch
1. If you start up Bahmcloud Store, you are on tab "Store" - latest version
2. Go to tab "Manage" - metadata from `bcs.yaml`, `hacs.yaml`, or `hacs.json`
3. Your repository you want to remove (if its custom) show up in the list - README content
4. Press "Remove" Button to delete from Store (Attention: If you Remove installed Repository, you won´t be able to Uninstall from Store, you have to remove by your own (Delete Folder from ```config/custom_components/*```))
Custom repos get the **Custom** badge and can be filtered via **Source**. Custom repositories get a **Custom** badge and can be filtered separately.
--- ---
## HACS Repositories ## HACS Repositories
Enable the **HACS official** toggle to include official HACS integrations. Enable the HACS toggle to include official HACS integration repositories.
- BCS downloads the HACS integration list and maps **humanreadable names/descriptions** from HACS metadata. Current scope:
- HACS entries are **not** part of your BCS-Official Repositories (avoid duplicate entries).
With many HACS repos, metadata loads in the background; names/descriptions appear progressively and are cached. - HACS source support is currently focused on integrations
- HACS metadata is used to improve naming and descriptions
--- ---
## Update Entities in Home Assistant ## Update Entities
BCS exposes update entities for installed repos: BCS exposes Home Assistant update entities for installed integrations.
- Found under **Settings → Updates**
- Clicking **Install** triggers BCS update pipeline - Found under **Settings -> Updates**
- Shows **installed** and **latest** versions (BCS ref logic) - Shows installed ref and latest ref
- Lets Home Assistant trigger the BCS update pipeline
Blueprint repositories do not currently use the integration-style update entity flow.
--- ---
## Background Caching & Performance ## Performance and Caching
- **Fast initial list**: index + local cache only BCS is designed to keep startup responsive.
- **Background enrichment**: provider info, latest version, metadata, description, readme (best effort)
- **Ondemand**: opening a repo triggers immediate enrichment; data is **persisted** to cache - Heavy work runs after Home Assistant startup
- **Persistent cache**: survives HA restarts; speeds up subsequent runs - Repo data is enriched in the background
- **Refresh**: immediately rechecks installed repos and key metadata - Repository details are cached
- Version lists are cached
- HACS metadata is cached
Opening a repository detail view can force immediate enrichment for that repository.
--- ---
## Restart Required ## Restart Behavior
After install, update, or restore, BCS raises a **Restart required** item in Home Assistant (Repairs). You can restart directly from there. Restart usually matters only for integration changes.
- Integration install/update/uninstall/restore: restart expected
- Blueprint install/uninstall: restart usually not needed
BCS uses a Home Assistant repair flow to surface restart requirements for integration changes.
--- ---
## Troubleshooting ## Troubleshooting
- **New release but no update**: Open the repo detail once; ensure its a **release/tag** (commits alone dont change the ref). - **Latest version missing**: open the repository detail once to force a recheck
- **Descriptions/Latest missing**: Wait for background enrichment or open the repo detail (forces enrichment). Cached afterwards. - **Release notes missing**: the selected version may be a tag or branch without a provider release body
(You also can Install new version by selecting in Version tab) - **Blueprint install fails**: verify the repository really contains a `blueprints/` folder
- **Slow startup**: BCS schedules heavy work after HA started. Keep indexes reasonable. - **Integration install fails**: verify the repository contains `custom_components/<domain>/manifest.json`
- **Repo appears but cannot install**: metadata can describe the category, but the repository layout still has to match that category
--- ---
## FAQ ## FAQ
- **Backups path?** `/config/.bcs_backups/<domain>/<timestamp>/` ### Where are integrations installed?
- **Install path?** `/config/custom_components/<domain>`
- **Downgrade?** Yes, pick an older version and install. `/config/custom_components/<domain>`
- **Restart needed?** Yes, after install/update/restore.
### Where are blueprints installed?
`/config/blueprints/...`
### Are pinned repositories persistent?
Yes.
### Do blueprints require a restart?
Usually no.
### Do integrations require a restart?
Yes, normally after install, update, uninstall, or restore.

View File

@@ -1,7 +1,7 @@
{ {
"domain": "bahmcloud_store", "domain": "bahmcloud_store",
"name": "Bahmcloud Store", "name": "Bahmcloud Store",
"version": "0.7.4", "version": "0.7.5",
"documentation": "https://git.bahmcloud.de/bahmcloud/bahmcloud_store", "documentation": "https://git.bahmcloud.de/bahmcloud/bahmcloud_store",
"config_flow": true, "config_flow": true,
"platforms": ["update"], "platforms": ["update"],