mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-24 02:44:49 +02:00
Delete upstream docs apparatus; rewrite README for the fork
The CDiT fork is single-household and was carrying an entire upstream docs/ mkdocs site documenting features the fork has removed (sleep mode, take-over-control, brightness_mode selector, YAML config). The README mostly auto-generated from those pages via markdown-code-runner. What's gone: - docs/ — all 11 pages + assets + run_markdown_code_runner.py - .github/workflows/docs.yml — zensical+shinylive GitHub Pages build - .github/workflows/markdown-code-runner.yml — auto-edit of README from docs/ - .github/update-services.py / update-strings.py — would clobber the hand-edited services.yaml / strings.json - scripts/update-generated-content — orchestrator for the above - custom_components/adaptive_lighting/_docs_helpers.py + docs_gen.py — only used by the deleted markdown-code-runner - zensical.toml — docs-site config - "docs" dependency group in pyproject.toml (markdown-code-runner, shinylive, zensical, etc.) + lock regenerated What's new: - README.md rewritten to describe the fork's actual surface — 3 switches, 4 number entities, 3 sensor entities per profile, 2 services (apply + change_switch_settings), entry-only setup, UI tuning, sun source. Preserves the existing "What's new in 2.1" / "2.2" block quotes. - webapp/README.md annotated to flag the Shiny simulator models the upstream curve (with brightness_mode, sleep mode, etc.) and does not reflect the fork. - CLAUDE.md command table no longer references update-generated-content. Sensor.py + test_sensor_platform.py: incidental black reformat from the lint pass (multi-arg function calls split per line). Tests still pass (123/123). Lint clean. Sensors implementation unchanged.
This commit is contained in:
parent
1b21228b30
commit
bba0ef31d8
31 changed files with 165 additions and 2999 deletions
|
|
@ -49,7 +49,9 @@ def _unique_id(entry, key: str) -> str:
|
|||
|
||||
def _resolve_entity_id(hass, entry, key: str) -> str | None:
|
||||
return er.async_get(hass).async_get_entity_id(
|
||||
"sensor", DOMAIN, _unique_id(entry, key),
|
||||
"sensor",
|
||||
DOMAIN,
|
||||
_unique_id(entry, key),
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -63,7 +65,9 @@ async def test_three_sensor_entities_registered(hass) -> None:
|
|||
registry = er.async_get(hass)
|
||||
for key in SENSOR_KEYS:
|
||||
eid = registry.async_get_entity_id(
|
||||
"sensor", DOMAIN, _unique_id(entry, key),
|
||||
"sensor",
|
||||
DOMAIN,
|
||||
_unique_id(entry, key),
|
||||
)
|
||||
assert eid is not None, f"Missing sensor entity for {key}"
|
||||
assert eid.startswith("sensor.")
|
||||
|
|
@ -331,9 +335,9 @@ async def test_friendly_names_compose_correctly(hass) -> None:
|
|||
if fname in names.values():
|
||||
continue
|
||||
# Any other entity's friendly name must not match a sensor's.
|
||||
assert fname not in all_friendly, (
|
||||
f"Collision: {fname} appears on both sensor and another entity"
|
||||
)
|
||||
assert (
|
||||
fname not in all_friendly
|
||||
), f"Collision: {fname} appears on both sensor and another entity"
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -370,11 +374,13 @@ async def test_unload_detaches_dispatcher(hass) -> None:
|
|||
# dispatcher subscription leaked.
|
||||
ent_reg = er.async_get(hass)
|
||||
eid = ent_reg.async_get_entity_id(
|
||||
"sensor", DOMAIN, _unique_id(entry, "output_brightness"),
|
||||
"sensor",
|
||||
DOMAIN,
|
||||
_unique_id(entry, "output_brightness"),
|
||||
)
|
||||
if eid is not None:
|
||||
state = hass.states.get(eid)
|
||||
if state is not None:
|
||||
assert state.state != "99", (
|
||||
"Dispatcher subscription leaked: sensor updated after unload"
|
||||
)
|
||||
assert (
|
||||
state.state != "99"
|
||||
), "Dispatcher subscription leaked: sensor updated after unload"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue