Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
92271b8
docs: add UI config flow design document
clintongormley Feb 13, 2026
154985a
docs: add UI config flow implementation plan
clintongormley Feb 13, 2026
6db0ac2
Add config_flow to manifest.json
clintongormley Feb 13, 2026
22c1b6b
Create __init__.py for Cover Time Based integration
clintongormley Feb 13, 2026
9e8ea51
Update strings.json with translations for config, options, and subent…
clintongormley Feb 13, 2026
fa3cd92
Add config_flow.py with config, options, and subentry flows
clintongormley Feb 13, 2026
0ceeff4
Add async_setup_entry to cover.py for config entry support
clintongormley Feb 13, 2026
982b7b3
refactor: simplify config flow to one entry per cover
clintongormley Feb 13, 2026
6bfc1e9
refactor: two-step config flow with conditional fields
clintongormley Feb 13, 2026
b87a803
feat: add name field, tilt section, and improve config flow UX
clintongormley Feb 14, 2026
2600c49
feat: deprecate YAML configuration with repair issue
clintongormley Feb 14, 2026
3558418
fix: address code review issues
clintongormley Feb 14, 2026
c777b00
fix: add missing description to user step in translations
clintongormley Feb 16, 2026
8e5e21d
Add input mode subclasses design doc
clintongormley Feb 15, 2026
f035c15
Add input mode subclasses implementation plan
clintongormley Feb 15, 2026
908ac3a
Add test infrastructure and characterization tests for relay commands
clintongormley Feb 15, 2026
f405949
Extract CoverTimeBased base class to cover_base.py with abstract methods
clintongormley Feb 15, 2026
6c1fcaa
Add concrete subclasses for each cover input mode
clintongormley Feb 15, 2026
fa84ca2
refactor: add factory function, clean up constructors, remove toggle …
clintongormley Feb 15, 2026
78d1c6f
fix: restore async_write_ha_state in set_known_position/set_known_til…
clintongormley Feb 15, 2026
21b25b8
refactor: extract helpers and unify movement methods in cover_base.py
clintongormley Feb 16, 2026
50a36c8
test: add comprehensive tests for base class movement orchestration
clintongormley Feb 16, 2026
fd98345
refactor: extract helpers to reduce duplication in movement methods
clintongormley Feb 17, 2026
93bc659
ci: add GitHub Actions workflow for tests and linting
clintongormley Feb 17, 2026
c9ae097
ci: set asyncio_default_fixture_loop_scope to silence deprecation war…
clintongormley Feb 17, 2026
38cf3da
test: cancel pending startup delay tasks in fixture teardown
clintongormley Feb 17, 2026
1a7420e
test: cancel _delay_task in test to prevent lingering task error
clintongormley Feb 17, 2026
9868f20
docs: add calibration APIs design document
clintongormley Feb 17, 2026
e1c0317
docs: add calibration APIs implementation plan
clintongormley Feb 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.12", "3.13"]
steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
pip install homeassistant xknx==3.11.0
pip install pytest pytest-asyncio pytest-homeassistant-custom-component

- name: Run tests
run: pytest tests/ -v

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Install ruff
run: pip install ruff

- name: Check formatting
run: ruff format --check .

- name: Check linting
run: ruff check .
24 changes: 24 additions & 0 deletions custom_components/cover_time_based/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""Cover Time Based integration."""

from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant

PLATFORMS: list[Platform] = [Platform.COVER]


async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Cover Time Based from a config entry."""
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
entry.async_on_unload(entry.add_update_listener(async_update_options))
return True


async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)


async def async_update_options(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Handle options update - reload the entry."""
await hass.config_entries.async_reload(entry.entry_id)
Loading