|
|
@@ -188,7 +188,7 @@ assets. Never mix these the other way around.
|
|
|
|
|
|
|
|
|
|
|
|
| Area | What | Status |
|
|
|
|
| Area | What | Status |
|
|
|
|
|---|---|---|
|
|
|
|
|---|---|---|
|
|
|
|
| `custom_components/audi_dashboard/` | The HA integration: backend, panel, OTA app bundle. HACS-shaped but HACS-installable only in principle — the repo is private and HACS categorically refuses private repos, so `install.ps1` is the actual, only install path (section H) | ✅ **finished, in use** — replaced the pyscript backend on 2026-08-23 (section H) |
|
|
|
|
| `custom_components/audi_dashboard/` | The HA integration: backend, panel, OTA app bundle. HACS is not used and cannot be — private repo, categorical refusal on HACS's side, no GitHub mirror any more; `install.ps1` is the permanent, only install path (section H) | ✅ **finished, in use** — replaced the pyscript backend on 2026-08-23 (section H) |
|
|
|
|
| `homeassistant/` | Install package, recorder snippet, guides — **no code any more** | ✅ |
|
|
|
|
| `homeassistant/` | Install package, recorder snippet, guides — **no code any more** | ✅ |
|
|
|
|
| `testumgebung/` | Script that rebuilds a throwaway Home Assistant with the real backend | ✅ new, reproducible |
|
|
|
|
| `testumgebung/` | Script that rebuilds a throwaway Home Assistant with the real backend | ✅ new, reproducible |
|
|
|
|
| `design-system/` | React component library `@audi-dash/ui`, brand-free, feeds Claude Design | ✅ done as a kit (20 components, 1,690 lines) |
|
|
|
|
| `design-system/` | React component library `@audi-dash/ui`, brand-free, feeds Claude Design | ✅ done as a kit (20 components, 1,690 lines) |
|
|
|
@@ -1815,23 +1815,29 @@ HACS 2.0.5 rather than from memory:
|
|
|
|
`custom_templates/` and `appdaemon/apps/<name>/` (verified in `repositories/*.py` → `localpath`).
|
|
|
|
`custom_templates/` and `appdaemon/apps/<name>/` (verified in `repositories/*.py` → `localpath`).
|
|
|
|
The app needed `/config/pyscript/` **and** `/config/audi_dashboard/` **and** `configuration.yaml`
|
|
|
|
The app needed `/config/pyscript/` **and** `/config/audi_dashboard/` **and** `configuration.yaml`
|
|
|
|
entries. This is what the conversion solved.
|
|
|
|
entries. This is what the conversion solved.
|
|
|
|
- **HACS is GitHub-only.** `github.com`/`api.github.com` are hardcoded throughout; the repo lived
|
|
|
|
- **HACS is GitHub-only, and does not work here — permanently, not just today.** `github.com`/
|
|
|
|
on `gitea.nothaft.cloud`. 2026-08-24: the owner mirrored it to `github.com/T130B/DM360`, and the
|
|
|
|
`api.github.com` are hardcoded throughout; the repo lives on `gitea.nothaft.cloud`. Briefly
|
|
|
|
manifest URLs/codeowners now point there — but this does **not** make HACS usable. **HACS
|
|
|
|
mirrored to `github.com/T130B/DM360` on 2026-08-24, but that changes nothing: **HACS
|
|
|
|
categorically refuses private repositories**, confirmed against its own docs
|
|
|
|
categorically refuses private repositories**, confirmed against its own docs
|
|
|
|
(hacs.xyz/docs/faq/private_repositories: "Private GitHub repositories can not be used with HACS
|
|
|
|
(hacs.xyz/docs/faq/private_repositories: "Private GitHub repositories can not be used with HACS
|
|
|
|
at all... HACS can only get publicly available information") — no token, no signed-in-account
|
|
|
|
at all... HACS can only get publicly available information") — no token, no signed-in-account
|
|
|
|
exception. An earlier note in this file claimed the opposite ("HACS must be signed in with the
|
|
|
|
exception. An earlier note in this file claimed the opposite ("HACS must be signed in with the
|
|
|
|
account that owns it"); that was wrong and is corrected here. The GitHub mirror is **private on
|
|
|
|
account that owns it"); that was wrong and is corrected here. The repo is **private on purpose**
|
|
|
|
purpose** (it carries the Audi typeface and the model badges, licensed for this one private
|
|
|
|
(it carries the Audi typeface and the model badges, licensed for this one private install only),
|
|
|
|
install only), so making it public to satisfy HACS is not on the table.
|
|
|
|
so making it public to satisfy HACS is not on the table — and since the mirror bought nothing
|
|
|
|
`homeassistant/installationspaket/install.ps1` is therefore not a fallback — it is **the only
|
|
|
|
(HACS still can't see a private repo, mirrored or not), the owner decommissioned it the same day.
|
|
|
|
installation path**, and the docs (`README.md`, `homeassistant/INSTALL.md`,
|
|
|
|
**Development is Gitea-only from here on; there is no GitHub presence.** `hacs.json` was removed
|
|
|
|
`installationspaket/ANLEITUNG.md`, `VERSIONIERUNG.md`, the script's own header) were rewritten
|
|
|
|
(dead weight with no GitHub target to serve), and `manifest.json`'s `documentation`/
|
|
|
|
2026-08-24 to say so instead of presenting a HACS path that cannot work.
|
|
|
|
`issue_tracker`/`codeowners` point at the Gitea repo instead.
|
|
|
|
|
|
|
|
`homeassistant/installationspaket/install.ps1` is not a fallback — it is **the only installation
|
|
|
|
|
|
|
|
path**, and the docs (`README.md`, `homeassistant/INSTALL.md`, `installationspaket/ANLEITUNG.md`,
|
|
|
|
|
|
|
|
`VERSIONIERUNG.md`, the script's own header) say so. Don't reintroduce a GitHub mirror or
|
|
|
|
|
|
|
|
`hacs.json` without the owner raising it again — the private/public constraint that killed this
|
|
|
|
|
|
|
|
path hasn't changed and isn't expected to.
|
|
|
|
|
|
|
|
|
|
|
|
**The shape.** `custom_components/audi_dashboard/` at repo root (HACS looks for
|
|
|
|
**The shape.** `custom_components/audi_dashboard/` at repo root — not for HACS's benefit (see
|
|
|
|
`custom_components/<first dir>` there and nowhere else), `hacs.json` beside it. Config flow, one
|
|
|
|
above, HACS is off the table), just where `install.ps1` and Home Assistant itself expect a
|
|
|
|
|
|
|
|
`custom_components` entry to live. Config flow, one
|
|
|
|
`sensor` platform, 18 services, ~2,900 lines of pyscript ported to ~2,400 lines of integration.
|
|
|
|
`sensor` platform, 18 services, ~2,900 lines of pyscript ported to ~2,400 lines of integration.
|
|
|
|
`koordinator.py` holds the runtime state and does the wiring that `@service`/`@state_trigger`/
|
|
|
|
`koordinator.py` holds the runtime state and does the wiring that `@service`/`@state_trigger`/
|
|
|
|
`@time_trigger` used to do implicitly; the domain modules keep their old names and structure so the
|
|
|
|
`@time_trigger` used to do implicitly; the domain modules keep their old names and structure so the
|
|
|
@@ -1915,14 +1921,10 @@ left to add), `ANLEITUNG.pdf` (stale and not regenerable here; the `.md` beside
|
|
|
|
**Do not resurrect the pyscript tree.** If something is missing, port it — running both backends
|
|
|
|
**Do not resurrect the pyscript tree.** If something is missing, port it — running both backends
|
|
|
|
writes two sets of trips into the same files.
|
|
|
|
writes two sets of trips into the same files.
|
|
|
|
|
|
|
|
|
|
|
|
**HACS is not the delivery path — confirmed dead-end, not a gap.** 2026-08-24, checked against
|
|
|
|
**Don't re-litigate HACS.** Confirmed dead-end, not a gap — see the H) intro above. Nothing about
|
|
|
|
HACS's own docs: private repos are refused categorically, no exception. The layout is still HACS
|
|
|
|
Gitea-vs-mirrored-GitHub changes it: HACS refuses private repos regardless of where they're
|
|
|
|
shape (`custom_components/audi_dashboard/` + `hacs.json` at repo root, manifest with `domain`,
|
|
|
|
mirrored, and the private/public constraint (licensed Audi assets in the repo) isn't going away.
|
|
|
|
`name`, `version`, `documentation`, `issue_tracker`, `codeowners`) in case the repo is ever
|
|
|
|
`install.ps1` is the permanent, only install path, not a stand-in.
|
|
|
|
restructured to separate the licensed Audi assets from the installable code — but there is no
|
|
|
|
|
|
|
|
current plan to do that, and `install.ps1` is not standing in for HACS temporarily; it is the
|
|
|
|
|
|
|
|
permanent, only path. Don't spend effort re-verifying HACS compatibility for this repo again
|
|
|
|
|
|
|
|
unless the private/public situation changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### The deployed-parity problem, and what was built for it (2026-08-23)
|
|
|
|
### The deployed-parity problem, and what was built for it (2026-08-23)
|
|
|
|
|
|
|
|
|
|
|
|