Rename the integration to CamperCan and add brand imagery #123

Merged
rob merged 5 commits from feat/campercan-rename into main 2026-10-10 20:01:41 +00:00
Owner

The integration is now CamperCan: domain campercan, folder custom_components/campercan, service campercan.shutdown, loggers, CI, release zip and package names. The updater follows: container campercan-updater, in-container paths /var/lib/campercan-updater/..., hotspot campercan-ota. Host bind sources under updater-data/ are unchanged, so no data moves. The icon and logo live in custom_components/campercan/brand/, which Home Assistant 2026.3 and later serves directly.

Migration: an existing install must remove the old Campervan integration under Settings → Devices & services before installing CamperCan, then add it again. The config entry and entity registry are keyed by domain.

Hotspot: radio.py creates and deletes the profile by name, so a campervan-ota profile left up by an interrupted update would stay on the Pi; remove it with nmcli connection delete campervan-ota.

Tested: ruff check, ruff format --check, mypy, and pytest (1285 passed, 3 skipped).

The integration is now CamperCan: domain `campercan`, folder `custom_components/campercan`, service `campercan.shutdown`, loggers, CI, release zip and package names. The updater follows: container `campercan-updater`, in-container paths `/var/lib/campercan-updater/...`, hotspot `campercan-ota`. Host bind sources under `updater-data/` are unchanged, so no data moves. The icon and logo live in `custom_components/campercan/brand/`, which Home Assistant 2026.3 and later serves directly. **Migration:** an existing install must remove the old Campervan integration under Settings → Devices & services before installing CamperCan, then add it again. The config entry and entity registry are keyed by domain. **Hotspot:** radio.py creates and deletes the profile by name, so a `campervan-ota` profile left up by an interrupted update would stay on the Pi; remove it with `nmcli connection delete campervan-ota`. **Tested:** `ruff check`, `ruff format --check`, `mypy`, and `pytest` (1285 passed, 3 skipped).
Rename the integration from Campervan to CamperCan
Some checks failed
Lint, type check and test / release (pull_request) Has been cancelled
Lint, type check and test / quality (pull_request) Has been cancelled
Lint, type check and test / hassfest (pull_request) Has been cancelled
d19af8ef6e
Add CamperCan brand imagery
All checks were successful
Lint, type check and test / hassfest (pull_request) Successful in 27s
Lint, type check and test / quality (pull_request) Successful in 2m14s
Lint, type check and test / release (pull_request) Has been skipped
0300ef0f01
rob left a comment
No description provided.
1. README.md (brand note) and brand/: the icons sit at the repo root. They are not in the release zip (it packages only `custom_components/campercan`) and not mounted by compose.yaml, so this install will never show them. The README line says they go to brands.home-assistant.io. I believe recent Home Assistant instead reads `custom_components/campercan/brand/` directly. I haven't confirmed that against current HA docs, so check it. If it's right, move the folder there and drop the README line. 2. brand/icon.png and icon@2x.png are RGB with no alpha, so they are opaque squares. The brands repo expects transparency. Check this is intended. 3. I couldn't run the test suite here (no venv or pytest). My grep found no leftover `campervan` outside the exclusions you listed. CI paths, the zip name, the registry package name, the compose mounts, the logger config and the `services.yaml` filter all point at `campercan`.
Author
Owner

Re review: brand/ stays at the root on purpose. The brief was to prepare a home-assistant/brands custom_integrations/campercan submission and keep images out of the release zip. The icon is the opaque cream tile to match the touch icon; the transparent wordmark is the logo.

Re review: `brand/` stays at the root on purpose. The brief was to prepare a home-assistant/brands `custom_integrations/campercan` submission and keep images out of the release zip. The icon is the opaque cream tile to match the touch icon; the transparent wordmark is the logo.
Author
Owner

The brand logo files have transparent backgrounds which will create problems with legibility on dark backgrounds. This needs fixed to have the cream background of the icons

The brand logo files have transparent backgrounds which will create problems with legibility on dark backgrounds. This needs fixed to have the cream background of the icons
Put the logo on the cream background
All checks were successful
Lint, type check and test / hassfest (pull_request) Successful in 35s
Lint, type check and test / quality (pull_request) Successful in 2m18s
Lint, type check and test / release (pull_request) Has been skipped
fb9cbad799
Author
Owner

Done in fb9cbad: both logos are now opaque on the cream #FBF8F4 background, same sizes and padding.

Done in fb9cbad: both logos are now opaque on the cream `#FBF8F4` background, same sizes and padding.
Rename the updater container, paths and hotspot to campercan
Some checks failed
Lint, type check and test / hassfest (pull_request) Successful in 8s
Lint, type check and test / quality (pull_request) Failing after 20s
Lint, type check and test / release (pull_request) Has been skipped
a6545cb2c6
Ship the brand images inside the integration
Some checks failed
Lint, type check and test / hassfest (pull_request) Successful in 8s
Lint, type check and test / quality (pull_request) Failing after 19s
Lint, type check and test / release (pull_request) Has been skipped
82224f068a
Claude left a comment
No description provided.
One minor point. updater/radio.py:23: a `campervan-ota` NetworkManager profile left by a run killed before this deploys won't be matched by the stale-profile cleanup (radio.py:155, 298). It's a one-off. Run `nmcli connection delete campervan-ota` on the Pi once, or note it in docs/development.md next to the migration paragraph.
rob merged commit f789d5ffa3 into main 2026-10-10 20:01:41 +00:00
rob deleted branch feat/campercan-rename 2026-10-10 20:01:42 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rob/CampervanHomeAssistant!123
No description provided.