Add blueprint support and refresh documentation
This commit is contained in:
1
.idea/changes.md
generated
1
.idea/changes.md
generated
@@ -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.
|
||||
- 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/`.
|
||||
- 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
|
||||
- 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
4
.idea/start prompt.md
generated
@@ -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`.
|
||||
|
||||
Current release baseline:
|
||||
- `manifest.json` version is `0.7.4`
|
||||
- Latest documented release in `CHANGELOG.md` is `0.7.4` dated `2026-03-23`
|
||||
- `manifest.json` version is `0.7.5`
|
||||
- Latest documented release in `CHANGELOG.md` is `0.7.5` dated `2026-03-23`
|
||||
|
||||
12
CHANGELOG.md
12
CHANGELOG.md
@@ -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
|
||||
|
||||
### Added
|
||||
|
||||
74
README.md
74
README.md
@@ -1,50 +1,86 @@
|
||||
# Bahmcloud Store (BCS) for Home Assistant
|
||||
|
||||
Bahmcloud Store (BCS) is a provider-neutral store for Home Assistant custom integrations.
|
||||
It allows you to browse, install, update, downgrade, uninstall and restore integrations
|
||||
directly from the Home Assistant UI.
|
||||
Bahmcloud Store (BCS) is a provider-neutral store for Home Assistant content hosted on git platforms.
|
||||
It currently supports installing and managing:
|
||||
|
||||
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
|
||||
|
||||
### Option A: Home Assistant OS / Supervised (Add-on – recommended)
|
||||
### Option A: Home Assistant OS / Supervised
|
||||
|
||||
1. Open **Settings → Add-ons → Add-on Store**
|
||||
2. Add the Bahmcloud Add-on repository
|
||||
1. Open **Settings -> Add-ons -> Add-on Store**
|
||||
2. Add the Bahmcloud add-on repository:
|
||||
`https://git.bahmcloud.de/bahmcloud/addons`
|
||||
3. Install **Bahmcloud Store Installer**
|
||||
4. Start the add-on
|
||||
5. Restart Home Assistant
|
||||
|
||||
Installed to:
|
||||
/config/custom_components/bahmcloud_store
|
||||
`/config/custom_components/bahmcloud_store`
|
||||
|
||||
---
|
||||
|
||||
### Option B: Manual Installation (Container / Core)
|
||||
### Option B: Manual Installation
|
||||
|
||||
1. Download the latest release
|
||||
2. Copy `custom_components/bahmcloud_store` to:
|
||||
/config/custom_components/bahmcloud_store
|
||||
`/config/custom_components/bahmcloud_store`
|
||||
3. Restart Home Assistant
|
||||
|
||||
---
|
||||
|
||||
## Repository Sources
|
||||
|
||||
- **BCS Official**
|
||||
- **HACS**
|
||||
- **Custom**
|
||||
- **BCS Official**: repositories from the Bahmcloud store index
|
||||
- **HACS**: optional official HACS integration source
|
||||
- **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
|
||||
|
||||
Developer documentation:
|
||||
https://git.bahmcloud.de/bahmcloud/bahmcloud_store/src/branch/main/README_DEVELOPER.md
|
||||
- Developer documentation: `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
|
||||
|
||||
@@ -1,115 +1,159 @@
|
||||
# Bahmcloud Store – Developer Documentation
|
||||
# Bahmcloud Store - Developer Documentation
|
||||
|
||||
For contributors and maintainers.
|
||||
|
||||
## Architecture
|
||||
## Project Scope
|
||||
|
||||
Repositories:
|
||||
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```
|
||||
Bahmcloud Store is evolving from an integration-only store into a broader Home Assistant git-based content store.
|
||||
|
||||
### Integration Layout
|
||||
Currently supported install categories:
|
||||
|
||||
custom_components/bahmcloud_store/
|
||||
- __init__.py: setup, panel registration, schedule background after HA started
|
||||
- core.py: index merge, enrichment, install/update/uninstall, backups, restore, caching
|
||||
- providers.py: GitHub/GitLab/Gitea repo info + latest version helpers
|
||||
- metadata.py: read bcs.yaml / hacs.json / hacs.yaml
|
||||
- storage.py: persistent storage (installed, custom, repo cache, hacs cache)
|
||||
- views.py: HTTP API endpoints
|
||||
- update.py: UpdateEntity implementation
|
||||
- repairs.py: (optional) Repairs flow for restart
|
||||
- panel/: UI (panel.js, styles.css, etc.)
|
||||
- manifest.json
|
||||
- Integrations
|
||||
- Blueprints
|
||||
|
||||
Planned categories:
|
||||
|
||||
- Templates
|
||||
- Lovelace / dashboard designs
|
||||
- Additional content types with category-specific install logic
|
||||
|
||||
## Repository Layout
|
||||
|
||||
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
|
||||
|
||||
- RepoItem (merged)
|
||||
- Installed repos (storage)
|
||||
- Repo cache (persisted enrichment)
|
||||
- HACS meta cache (mapping owner/repo → name/description)
|
||||
|
||||
## 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
|
||||
- `RepoItem`: merged repository model used by the UI and backend
|
||||
- Installed repositories: persisted in Home Assistant storage
|
||||
- Settings: persistent UI and behavior settings such as HACS enablement and pinned repositories
|
||||
- Repo cache: provider and metadata enrichment cache
|
||||
- HACS cache: display metadata cache for HACS integration repositories
|
||||
|
||||
## Metadata
|
||||
|
||||
- Prefer `bcs.yaml`, fallback `hacs.json` / `hacs.yaml`
|
||||
- Populate name/description/category/author/maintainer
|
||||
Metadata priority:
|
||||
|
||||
## 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
|
||||
- name: Your Integration Name
|
||||
url: https://your-git-hoster.com/your-org/your-repo
|
||||
category: Category (actually only "Integrations" are supported)
|
||||
name: Example Project
|
||||
description: Short description
|
||||
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
|
||||
name: Your Integration Name
|
||||
description: One-liner for the store (optional, store information are also catched from git repository)
|
||||
category: Integrations (actually only supported)
|
||||
author: Your Name
|
||||
maintainer: Your Handle
|
||||
- name: Example Project
|
||||
url: https://your-git-hoster.example/org/repo
|
||||
category: Blueprint
|
||||
```
|
||||
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
|
||||
- Respect provider rate limits
|
||||
- Clean logging around refresh/install/update/restore
|
||||
- Keep UI responsive; throttle updates
|
||||
```yaml
|
||||
name: Example Project
|
||||
description: One-line description
|
||||
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"
|
||||
- Add Downloads and install for category "Template"
|
||||
- Add Downloads and install for category "Theme"
|
||||
- Add Downloads and install for category "Blueprint"
|
||||
-
|
||||
## Design Direction
|
||||
|
||||
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.
|
||||
|
||||
|
||||
327
README_FULL.md
327
README_FULL.md
@@ -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.
|
||||
It is written for users and admins who want a complete, practical reference.
|
||||
This guide explains the current feature set of Bahmcloud Store (BCS) for Home Assistant.
|
||||
|
||||
> 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
|
||||
|
||||
- Concepts
|
||||
- Sources (BCS / HACS / Custom)
|
||||
- Sources
|
||||
- Supported Content Types
|
||||
- UI Overview
|
||||
- Finding Integrations
|
||||
- Finding Repositories
|
||||
- Installing
|
||||
- Selecting Versions / Downgrading
|
||||
- Selecting Versions
|
||||
- Updating
|
||||
- Uninstalling
|
||||
- Backups & Restore
|
||||
- Pinned Repositories
|
||||
- Release Notes
|
||||
- Backups and Restore
|
||||
- Custom Repositories
|
||||
- HACS Repositories
|
||||
- Update Entities in Home Assistant
|
||||
- Background Caching & Performance
|
||||
- Restart Required
|
||||
- Update Entities
|
||||
- Performance and Caching
|
||||
- Restart Behavior
|
||||
- Troubleshooting
|
||||
- FAQ
|
||||
|
||||
@@ -29,189 +32,281 @@ It is written for users and admins who want a complete, practical reference.
|
||||
|
||||
## Concepts
|
||||
|
||||
- **Sources**:
|
||||
- **BCS Official** → entries from index (`store.yaml`) made and added from Bahmcloud
|
||||
- **HACS** → official HACS integrations list (toggleable)
|
||||
- **Custom** → manual entries you add locally
|
||||
- **Install location**: `/config/custom_components/<domain>`
|
||||
- **Backup**: BCS keeps pre‑update copies in `/config/.bcs_backups/<domain>/<timestamp>/`
|
||||
### Sources
|
||||
|
||||
- **BCS Official**: repositories from the official Bahmcloud index
|
||||
- **HACS**: optional HACS integration source
|
||||
- **Custom**: repositories you add manually by URL
|
||||
|
||||
### 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**:
|
||||
- **BCS Official** – from Bahmcloud index
|
||||
- **HACS** – from HACS official list (enable with the toggle)
|
||||
- **Custom** – added by you
|
||||
### Integrations
|
||||
|
||||
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
|
||||
|
||||
Top bar:
|
||||
- **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)
|
||||
Store view:
|
||||
|
||||
Repository card:
|
||||
- Name, description, badges (source, installed/update), category
|
||||
- Buttons: **Install / Update / Uninstall**
|
||||
- **Readme** expandable
|
||||
- **Open** to see details (available versions, metadata)
|
||||
- Search
|
||||
- Source filter
|
||||
- Category filter
|
||||
- State filter
|
||||
- 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.
|
||||
2. Combine with **Category** and **Source**.
|
||||
3. Sort to surface desired results.
|
||||
1. Use **Search** to filter by name, description, or URL.
|
||||
2. Use **Source** to switch between BCS Official, HACS, and Custom repositories.
|
||||
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
|
||||
|
||||
1. Open a repository.
|
||||
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)
|
||||
### Integration Install
|
||||
|
||||
**What happens internally**
|
||||
- BCS downloads the repository ZIP for the selected version (release/tag/branch).
|
||||
- It extracts all integrations found under `custom_components/<domain>` and deploys them.
|
||||
- It saves the **installed version (ref)** to track updates reliably, even if the repo’s own `manifest.json` is wrong/outdated.
|
||||
1. Open a repository.
|
||||
2. Optionally select a version.
|
||||
3. Click **Install**.
|
||||
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.
|
||||
- Choose **Latest** or a previous **release/tag**.
|
||||
- Installing a chosen ref **pins** the integration to that ref (no surprise updates).
|
||||
- You can upgrade again later by selecting **Latest** and clicking **Update**.
|
||||
- Use the version selector in the detail view.
|
||||
- `Latest` uses the newest provider release or tag BCS can determine.
|
||||
- You can install an older release or tag when available.
|
||||
- Release notes are shown when the selected version is a provider release with a body.
|
||||
|
||||
---
|
||||
|
||||
## Updating
|
||||
|
||||
- The **Update** button appears when `latest_version` differs from your **installed version (ref)**.
|
||||
- Updates are also available via **Home Assistant → Settings → Updates** (native Update entity).
|
||||
- Clicking **Update** runs the same safe pipeline as **Install** (with backup).
|
||||
### Integrations
|
||||
|
||||
**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
|
||||
|
||||
- Click **Uninstall** on the repository.
|
||||
- BCS removes the integration folders under `custom_components/<domain>`.
|
||||
- The installed state is cleared in the Store.
|
||||
- Restart Home Assistant if prompted.
|
||||
### Integrations
|
||||
|
||||
- Removes the installed integration directories from `/config/custom_components`
|
||||
- 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.
|
||||
|
||||
```
|
||||
/config/.bcs_backups/<domain>/<timestamp>/
|
||||
```
|
||||
Current behavior:
|
||||
|
||||
**Restore**:
|
||||
1. Open the repository in store.
|
||||
2. Select **Restore…**.
|
||||
3. Pick one of the **last backups** (up to retention limit). (Version details are showed in ())
|
||||
4. Confirm – BCS restores files and reconciles installed version to the restored ref.
|
||||
5. Restart Home Assistant if prompted.
|
||||
- Pin or unpin from the detail view
|
||||
- Filter the store by pinned repositories
|
||||
- Sort the store with pinned repositories first
|
||||
- Pinned repositories show a dedicated badge in the store overview
|
||||
- Pinned state is persisted in settings
|
||||
|
||||
If the old backup lacks metadata, BCS best‑effort derives the installed version from the backup’s `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
|
||||
|
||||
You can add any public repository (GitHub/GitLab/Gitea/Any other Git Hoster). BCS will attempt to detect:
|
||||
- provider & default branch
|
||||
- latest version (release/tag/atom)
|
||||
- repo metadata (prefer `bcs.yaml`, fallback `hacs.json/hacs.yaml`)
|
||||
- readme (common filenames)
|
||||
You can add any public repository URL that matches a supported provider style and contains supported content.
|
||||
|
||||
**Add an custom repository**(typical flows):
|
||||
- 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
|
||||
BCS attempts to detect:
|
||||
|
||||
**Remove an custom repository**(typical flows):
|
||||
- From the Store UI
|
||||
1. If you start up Bahmcloud Store, you are on tab "Store"
|
||||
2. Go to tab "Manage"
|
||||
3. Your repository you want to remove (if its custom) show up in the list
|
||||
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/*```))
|
||||
- provider
|
||||
- default branch
|
||||
- latest version
|
||||
- metadata from `bcs.yaml`, `hacs.yaml`, or `hacs.json`
|
||||
- README content
|
||||
|
||||
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
|
||||
|
||||
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 **human‑readable names/descriptions** from HACS metadata.
|
||||
- HACS entries are **not** part of your BCS-Official Repositories (avoid duplicate entries).
|
||||
Current scope:
|
||||
|
||||
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:
|
||||
- Found under **Settings → Updates**
|
||||
- Clicking **Install** triggers BCS update pipeline
|
||||
- Shows **installed** and **latest** versions (BCS ref logic)
|
||||
BCS exposes Home Assistant update entities for installed integrations.
|
||||
|
||||
- Found under **Settings -> Updates**
|
||||
- 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
|
||||
- **Background enrichment**: provider info, latest version, metadata, description, readme (best effort)
|
||||
- **On‑demand**: opening a repo triggers immediate enrichment; data is **persisted** to cache
|
||||
- **Persistent cache**: survives HA restarts; speeds up subsequent runs
|
||||
- **Refresh**: immediately rechecks installed repos and key metadata
|
||||
BCS is designed to keep startup responsive.
|
||||
|
||||
- Heavy work runs after Home Assistant startup
|
||||
- Repo data is enriched in the background
|
||||
- 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
|
||||
|
||||
- **New release but no update**: Open the repo detail once; ensure it’s a **release/tag** (commits alone don’t change the ref).
|
||||
- **Descriptions/Latest missing**: Wait for background enrichment or open the repo detail (forces enrichment). Cached afterwards.
|
||||
(You also can Install new version by selecting in Version tab)
|
||||
- **Slow startup**: BCS schedules heavy work after HA started. Keep indexes reasonable.
|
||||
- **Latest version missing**: open the repository detail once to force a recheck
|
||||
- **Release notes missing**: the selected version may be a tag or branch without a provider release body
|
||||
- **Blueprint install fails**: verify the repository really contains a `blueprints/` folder
|
||||
- **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
|
||||
|
||||
- **Backups path?** `/config/.bcs_backups/<domain>/<timestamp>/`
|
||||
- **Install path?** `/config/custom_components/<domain>`
|
||||
- **Downgrade?** Yes, pick an older version and install.
|
||||
- **Restart needed?** Yes, after install/update/restore.
|
||||
### Where are integrations installed?
|
||||
|
||||
`/config/custom_components/<domain>`
|
||||
|
||||
### 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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "bahmcloud_store",
|
||||
"name": "Bahmcloud Store",
|
||||
"version": "0.7.4",
|
||||
"version": "0.7.5",
|
||||
"documentation": "https://git.bahmcloud.de/bahmcloud/bahmcloud_store",
|
||||
"config_flow": true,
|
||||
"platforms": ["update"],
|
||||
|
||||
Reference in New Issue
Block a user