ihcctl 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ihcctl-0.2.0/PKG-INFO +110 -0
- ihcctl-0.2.0/README.md +100 -0
- ihcctl-0.2.0/pyproject.toml +23 -0
- ihcctl-0.2.0/setup.cfg +4 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/PKG-INFO +110 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/SOURCES.txt +54 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/dependency_links.txt +1 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/entry_points.txt +2 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/requires.txt +4 -0
- ihcctl-0.2.0/src/ihcctl.egg-info/top_level.txt +1 -0
- ihcctl-0.2.0/src/zehnder_ihc/__init__.py +66 -0
- ihcctl-0.2.0/src/zehnder_ihc/backup.py +280 -0
- ihcctl-0.2.0/src/zehnder_ihc/bleak_backend.py +70 -0
- ihcctl-0.2.0/src/zehnder_ihc/cli.py +530 -0
- ihcctl-0.2.0/src/zehnder_ihc/client.py +1026 -0
- ihcctl-0.2.0/src/zehnder_ihc/errors.py +94 -0
- ihcctl-0.2.0/src/zehnder_ihc/framing.py +39 -0
- ihcctl-0.2.0/src/zehnder_ihc/identity.py +58 -0
- ihcctl-0.2.0/src/zehnder_ihc/models.py +128 -0
- ihcctl-0.2.0/src/zehnder_ihc/mutations.py +57 -0
- ihcctl-0.2.0/src/zehnder_ihc/protocol.py +477 -0
- ihcctl-0.2.0/src/zehnder_ihc/restore.py +231 -0
- ihcctl-0.2.0/src/zehnder_ihc/transport.py +143 -0
- ihcctl-0.2.0/tests/test_active_weekplan.py +199 -0
- ihcctl-0.2.0/tests/test_bleak_backend.py +146 -0
- ihcctl-0.2.0/tests/test_cli.py +1095 -0
- ihcctl-0.2.0/tests/test_client.py +409 -0
- ihcctl-0.2.0/tests/test_dayplan_delete.py +307 -0
- ihcctl-0.2.0/tests/test_framing.py +47 -0
- ihcctl-0.2.0/tests/test_home_assistant_active_weekplan_select.py +410 -0
- ihcctl-0.2.0/tests/test_home_assistant_boost.py +385 -0
- ihcctl-0.2.0/tests/test_home_assistant_frontend_static.py +74 -0
- ihcctl-0.2.0/tests/test_home_assistant_layout.py +119 -0
- ihcctl-0.2.0/tests/test_home_assistant_schedule.py +636 -0
- ihcctl-0.2.0/tests/test_home_assistant_schedule_backup_restore.py +582 -0
- ihcctl-0.2.0/tests/test_home_assistant_structured_backend.py +433 -0
- ihcctl-0.2.0/tests/test_home_assistant_values.py +287 -0
- ihcctl-0.2.0/tests/test_identity.py +40 -0
- ihcctl-0.2.0/tests/test_modes.py +29 -0
- ihcctl-0.2.0/tests/test_package.py +46 -0
- ihcctl-0.2.0/tests/test_protocol.py +75 -0
- ihcctl-0.2.0/tests/test_quick_heating.py +250 -0
- ihcctl-0.2.0/tests/test_release_helper.py +48 -0
- ihcctl-0.2.0/tests/test_restore_executor.py +470 -0
- ihcctl-0.2.0/tests/test_restore_planner.py +327 -0
- ihcctl-0.2.0/tests/test_schedule_backup.py +226 -0
- ihcctl-0.2.0/tests/test_schedule_backup_snapshot.py +145 -0
- ihcctl-0.2.0/tests/test_schedule_client.py +913 -0
- ihcctl-0.2.0/tests/test_schedule_lists.py +244 -0
- ihcctl-0.2.0/tests/test_schedule_models.py +135 -0
- ihcctl-0.2.0/tests/test_schedule_mutation_contract.py +238 -0
- ihcctl-0.2.0/tests/test_schedule_protocol.py +203 -0
- ihcctl-0.2.0/tests/test_status.py +21 -0
- ihcctl-0.2.0/tests/test_task10a_hardware_tool.py +191 -0
- ihcctl-0.2.0/tests/test_transport.py +234 -0
- ihcctl-0.2.0/tests/test_weekplan_delete.py +285 -0
ihcctl-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ihcctl
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Python library and CLI for local Zehnder IHC control
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: bleak>=0.22
|
|
8
|
+
Provides-Extra: test
|
|
9
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
10
|
+
|
|
11
|
+
# ihcctl
|
|
12
|
+
|
|
13
|
+
`ihcctl` is a Python library and CLI for local Zehnder IHC controller control
|
|
14
|
+
over Bluetooth Low Energy. Normal use does not require a cloud service.
|
|
15
|
+
|
|
16
|
+
The distribution is `ihcctl`; the Python import namespace remains
|
|
17
|
+
`zehnder_ihc`; the CLI command is `ihcctl`.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
For the CLI, prefer pipx:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pipx install ihcctl
|
|
25
|
+
ihcctl --help
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Alternatively install into a Python environment:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python -m pip install ihcctl
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The first public release, `ihcctl` 0.2.0, is prepared but not yet published.
|
|
35
|
+
Until public publication and verification, these are the intended future
|
|
36
|
+
commands rather than a current PyPI installation path.
|
|
37
|
+
|
|
38
|
+
## Python library and CLI
|
|
39
|
+
|
|
40
|
+
Use `import zehnder_ihc` or import public classes directly:
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from zehnder_ihc import IHCClient
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The CLI requires a Bluetooth address and an externally stored identity file.
|
|
47
|
+
Do not commit it or share it with Home Assistant.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ihcctl --help
|
|
51
|
+
ihcctl register --help
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Registration requires physical IHC confirmation. The help commands do not
|
|
55
|
+
contact hardware. Do not keep the CLI connected while Home Assistant polls the
|
|
56
|
+
same controller.
|
|
57
|
+
|
|
58
|
+
## Home Assistant
|
|
59
|
+
|
|
60
|
+
The custom integration uses the same `zehnder_ihc` library internally. During
|
|
61
|
+
this preparation phase its `manifest.json` deliberately retains the existing
|
|
62
|
+
local direct-wheel requirement; it has not switched to `ihcctl`.
|
|
63
|
+
|
|
64
|
+
Only after a verified public PyPI release will a separately authorized change
|
|
65
|
+
pin it to `ihcctl==0.2.0`. Do not manually install, uninstall, or remove
|
|
66
|
+
packages in a Home Assistant container.
|
|
67
|
+
|
|
68
|
+
The optional Schedule Manager resource is:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
url: /zehnder_ihc/frontend/zehnder-ihc-schedule-card.js
|
|
72
|
+
type: module
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Development / fallback workflow
|
|
76
|
+
|
|
77
|
+
`tools/start-local-pypi.sh` and local pypiserver remain development/fallback
|
|
78
|
+
tools. They are not the normal workflow for new CLI users or the intended
|
|
79
|
+
production Home Assistant workflow after public PyPI migration. Existing Home
|
|
80
|
+
Assistant deployments still need the current local wheel until the later
|
|
81
|
+
manifest migration succeeds.
|
|
82
|
+
|
|
83
|
+
For repository work, use the existing test extra:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python -m venv .venv
|
|
87
|
+
source .venv/bin/activate
|
|
88
|
+
python -m pip install -e ".[test]"
|
|
89
|
+
python -m pytest -q
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Tests use sanitized frames and fake BLE backends; they do not contact IHC
|
|
93
|
+
hardware or perform writes.
|
|
94
|
+
|
|
95
|
+
## Publishing
|
|
96
|
+
|
|
97
|
+
Maintainers must read [the publishing guide](docs/publishing-pypi.md). Local
|
|
98
|
+
readiness never publishes:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
tools/release-pypi.sh --check
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
TestPyPI and production PyPI require separate explicit authorization.
|
|
105
|
+
|
|
106
|
+
## Safety
|
|
107
|
+
|
|
108
|
+
Phase-1 research is frozen. Never commit client identities, `ihc-client*.json`,
|
|
109
|
+
or files under `phase1-private/`. Hardware-changing tests need explicit
|
|
110
|
+
approval and protocol-level readback where possible.
|
ihcctl-0.2.0/README.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# ihcctl
|
|
2
|
+
|
|
3
|
+
`ihcctl` is a Python library and CLI for local Zehnder IHC controller control
|
|
4
|
+
over Bluetooth Low Energy. Normal use does not require a cloud service.
|
|
5
|
+
|
|
6
|
+
The distribution is `ihcctl`; the Python import namespace remains
|
|
7
|
+
`zehnder_ihc`; the CLI command is `ihcctl`.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
For the CLI, prefer pipx:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pipx install ihcctl
|
|
15
|
+
ihcctl --help
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Alternatively install into a Python environment:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
python -m pip install ihcctl
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The first public release, `ihcctl` 0.2.0, is prepared but not yet published.
|
|
25
|
+
Until public publication and verification, these are the intended future
|
|
26
|
+
commands rather than a current PyPI installation path.
|
|
27
|
+
|
|
28
|
+
## Python library and CLI
|
|
29
|
+
|
|
30
|
+
Use `import zehnder_ihc` or import public classes directly:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from zehnder_ihc import IHCClient
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
The CLI requires a Bluetooth address and an externally stored identity file.
|
|
37
|
+
Do not commit it or share it with Home Assistant.
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
ihcctl --help
|
|
41
|
+
ihcctl register --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Registration requires physical IHC confirmation. The help commands do not
|
|
45
|
+
contact hardware. Do not keep the CLI connected while Home Assistant polls the
|
|
46
|
+
same controller.
|
|
47
|
+
|
|
48
|
+
## Home Assistant
|
|
49
|
+
|
|
50
|
+
The custom integration uses the same `zehnder_ihc` library internally. During
|
|
51
|
+
this preparation phase its `manifest.json` deliberately retains the existing
|
|
52
|
+
local direct-wheel requirement; it has not switched to `ihcctl`.
|
|
53
|
+
|
|
54
|
+
Only after a verified public PyPI release will a separately authorized change
|
|
55
|
+
pin it to `ihcctl==0.2.0`. Do not manually install, uninstall, or remove
|
|
56
|
+
packages in a Home Assistant container.
|
|
57
|
+
|
|
58
|
+
The optional Schedule Manager resource is:
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
url: /zehnder_ihc/frontend/zehnder-ihc-schedule-card.js
|
|
62
|
+
type: module
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Development / fallback workflow
|
|
66
|
+
|
|
67
|
+
`tools/start-local-pypi.sh` and local pypiserver remain development/fallback
|
|
68
|
+
tools. They are not the normal workflow for new CLI users or the intended
|
|
69
|
+
production Home Assistant workflow after public PyPI migration. Existing Home
|
|
70
|
+
Assistant deployments still need the current local wheel until the later
|
|
71
|
+
manifest migration succeeds.
|
|
72
|
+
|
|
73
|
+
For repository work, use the existing test extra:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
python -m venv .venv
|
|
77
|
+
source .venv/bin/activate
|
|
78
|
+
python -m pip install -e ".[test]"
|
|
79
|
+
python -m pytest -q
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Tests use sanitized frames and fake BLE backends; they do not contact IHC
|
|
83
|
+
hardware or perform writes.
|
|
84
|
+
|
|
85
|
+
## Publishing
|
|
86
|
+
|
|
87
|
+
Maintainers must read [the publishing guide](docs/publishing-pypi.md). Local
|
|
88
|
+
readiness never publishes:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
tools/release-pypi.sh --check
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
TestPyPI and production PyPI require separate explicit authorization.
|
|
95
|
+
|
|
96
|
+
## Safety
|
|
97
|
+
|
|
98
|
+
Phase-1 research is frozen. Never commit client identities, `ihc-client*.json`,
|
|
99
|
+
or files under `phase1-private/`. Hardware-changing tests need explicit
|
|
100
|
+
approval and protocol-level readback where possible.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ihcctl"
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Python library and CLI for local Zehnder IHC control"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
dependencies = ["bleak>=0.22"]
|
|
12
|
+
|
|
13
|
+
[project.scripts]
|
|
14
|
+
ihcctl = "zehnder_ihc.cli:main"
|
|
15
|
+
|
|
16
|
+
[project.optional-dependencies]
|
|
17
|
+
test = ["pytest>=8"]
|
|
18
|
+
|
|
19
|
+
[tool.pytest.ini_options]
|
|
20
|
+
testpaths = ["tests"]
|
|
21
|
+
|
|
22
|
+
[tool.setuptools.packages.find]
|
|
23
|
+
where = ["src"]
|
ihcctl-0.2.0/setup.cfg
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ihcctl
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Python library and CLI for local Zehnder IHC control
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: bleak>=0.22
|
|
8
|
+
Provides-Extra: test
|
|
9
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
10
|
+
|
|
11
|
+
# ihcctl
|
|
12
|
+
|
|
13
|
+
`ihcctl` is a Python library and CLI for local Zehnder IHC controller control
|
|
14
|
+
over Bluetooth Low Energy. Normal use does not require a cloud service.
|
|
15
|
+
|
|
16
|
+
The distribution is `ihcctl`; the Python import namespace remains
|
|
17
|
+
`zehnder_ihc`; the CLI command is `ihcctl`.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
For the CLI, prefer pipx:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pipx install ihcctl
|
|
25
|
+
ihcctl --help
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Alternatively install into a Python environment:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python -m pip install ihcctl
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The first public release, `ihcctl` 0.2.0, is prepared but not yet published.
|
|
35
|
+
Until public publication and verification, these are the intended future
|
|
36
|
+
commands rather than a current PyPI installation path.
|
|
37
|
+
|
|
38
|
+
## Python library and CLI
|
|
39
|
+
|
|
40
|
+
Use `import zehnder_ihc` or import public classes directly:
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
from zehnder_ihc import IHCClient
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The CLI requires a Bluetooth address and an externally stored identity file.
|
|
47
|
+
Do not commit it or share it with Home Assistant.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ihcctl --help
|
|
51
|
+
ihcctl register --help
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Registration requires physical IHC confirmation. The help commands do not
|
|
55
|
+
contact hardware. Do not keep the CLI connected while Home Assistant polls the
|
|
56
|
+
same controller.
|
|
57
|
+
|
|
58
|
+
## Home Assistant
|
|
59
|
+
|
|
60
|
+
The custom integration uses the same `zehnder_ihc` library internally. During
|
|
61
|
+
this preparation phase its `manifest.json` deliberately retains the existing
|
|
62
|
+
local direct-wheel requirement; it has not switched to `ihcctl`.
|
|
63
|
+
|
|
64
|
+
Only after a verified public PyPI release will a separately authorized change
|
|
65
|
+
pin it to `ihcctl==0.2.0`. Do not manually install, uninstall, or remove
|
|
66
|
+
packages in a Home Assistant container.
|
|
67
|
+
|
|
68
|
+
The optional Schedule Manager resource is:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
url: /zehnder_ihc/frontend/zehnder-ihc-schedule-card.js
|
|
72
|
+
type: module
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Development / fallback workflow
|
|
76
|
+
|
|
77
|
+
`tools/start-local-pypi.sh` and local pypiserver remain development/fallback
|
|
78
|
+
tools. They are not the normal workflow for new CLI users or the intended
|
|
79
|
+
production Home Assistant workflow after public PyPI migration. Existing Home
|
|
80
|
+
Assistant deployments still need the current local wheel until the later
|
|
81
|
+
manifest migration succeeds.
|
|
82
|
+
|
|
83
|
+
For repository work, use the existing test extra:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
python -m venv .venv
|
|
87
|
+
source .venv/bin/activate
|
|
88
|
+
python -m pip install -e ".[test]"
|
|
89
|
+
python -m pytest -q
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Tests use sanitized frames and fake BLE backends; they do not contact IHC
|
|
93
|
+
hardware or perform writes.
|
|
94
|
+
|
|
95
|
+
## Publishing
|
|
96
|
+
|
|
97
|
+
Maintainers must read [the publishing guide](docs/publishing-pypi.md). Local
|
|
98
|
+
readiness never publishes:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
tools/release-pypi.sh --check
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
TestPyPI and production PyPI require separate explicit authorization.
|
|
105
|
+
|
|
106
|
+
## Safety
|
|
107
|
+
|
|
108
|
+
Phase-1 research is frozen. Never commit client identities, `ihc-client*.json`,
|
|
109
|
+
or files under `phase1-private/`. Hardware-changing tests need explicit
|
|
110
|
+
approval and protocol-level readback where possible.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
src/ihcctl.egg-info/PKG-INFO
|
|
4
|
+
src/ihcctl.egg-info/SOURCES.txt
|
|
5
|
+
src/ihcctl.egg-info/dependency_links.txt
|
|
6
|
+
src/ihcctl.egg-info/entry_points.txt
|
|
7
|
+
src/ihcctl.egg-info/requires.txt
|
|
8
|
+
src/ihcctl.egg-info/top_level.txt
|
|
9
|
+
src/zehnder_ihc/__init__.py
|
|
10
|
+
src/zehnder_ihc/backup.py
|
|
11
|
+
src/zehnder_ihc/bleak_backend.py
|
|
12
|
+
src/zehnder_ihc/cli.py
|
|
13
|
+
src/zehnder_ihc/client.py
|
|
14
|
+
src/zehnder_ihc/errors.py
|
|
15
|
+
src/zehnder_ihc/framing.py
|
|
16
|
+
src/zehnder_ihc/identity.py
|
|
17
|
+
src/zehnder_ihc/models.py
|
|
18
|
+
src/zehnder_ihc/mutations.py
|
|
19
|
+
src/zehnder_ihc/protocol.py
|
|
20
|
+
src/zehnder_ihc/restore.py
|
|
21
|
+
src/zehnder_ihc/transport.py
|
|
22
|
+
tests/test_active_weekplan.py
|
|
23
|
+
tests/test_bleak_backend.py
|
|
24
|
+
tests/test_cli.py
|
|
25
|
+
tests/test_client.py
|
|
26
|
+
tests/test_dayplan_delete.py
|
|
27
|
+
tests/test_framing.py
|
|
28
|
+
tests/test_home_assistant_active_weekplan_select.py
|
|
29
|
+
tests/test_home_assistant_boost.py
|
|
30
|
+
tests/test_home_assistant_frontend_static.py
|
|
31
|
+
tests/test_home_assistant_layout.py
|
|
32
|
+
tests/test_home_assistant_schedule.py
|
|
33
|
+
tests/test_home_assistant_schedule_backup_restore.py
|
|
34
|
+
tests/test_home_assistant_structured_backend.py
|
|
35
|
+
tests/test_home_assistant_values.py
|
|
36
|
+
tests/test_identity.py
|
|
37
|
+
tests/test_modes.py
|
|
38
|
+
tests/test_package.py
|
|
39
|
+
tests/test_protocol.py
|
|
40
|
+
tests/test_quick_heating.py
|
|
41
|
+
tests/test_release_helper.py
|
|
42
|
+
tests/test_restore_executor.py
|
|
43
|
+
tests/test_restore_planner.py
|
|
44
|
+
tests/test_schedule_backup.py
|
|
45
|
+
tests/test_schedule_backup_snapshot.py
|
|
46
|
+
tests/test_schedule_client.py
|
|
47
|
+
tests/test_schedule_lists.py
|
|
48
|
+
tests/test_schedule_models.py
|
|
49
|
+
tests/test_schedule_mutation_contract.py
|
|
50
|
+
tests/test_schedule_protocol.py
|
|
51
|
+
tests/test_status.py
|
|
52
|
+
tests/test_task10a_hardware_tool.py
|
|
53
|
+
tests/test_transport.py
|
|
54
|
+
tests/test_weekplan_delete.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
zehnder_ihc
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Public Zehnder IHC client API."""
|
|
2
|
+
|
|
3
|
+
from .bleak_backend import BleakBackend
|
|
4
|
+
from .backup import BackupDayplanV1, BackupSourceDeviceV1, BackupWeekplanV1, ScheduleBackupV1
|
|
5
|
+
from .client import IHCClient
|
|
6
|
+
from .errors import (
|
|
7
|
+
ActivePlanDeletionError,
|
|
8
|
+
AmbiguousPlanNameError,
|
|
9
|
+
BackupDeviceMismatchError,
|
|
10
|
+
BackupValidationError,
|
|
11
|
+
IndeterminateRegistrationError,
|
|
12
|
+
PlanNotFoundError,
|
|
13
|
+
PlanReferencedError,
|
|
14
|
+
)
|
|
15
|
+
from .identity import Identity
|
|
16
|
+
from .models import (
|
|
17
|
+
Dayplan,
|
|
18
|
+
DayplanQuickHeating,
|
|
19
|
+
DayplanTransition,
|
|
20
|
+
OperatingMode,
|
|
21
|
+
ScheduleInventory,
|
|
22
|
+
ScheduleState,
|
|
23
|
+
Status,
|
|
24
|
+
Weekday,
|
|
25
|
+
Weekplan,
|
|
26
|
+
)
|
|
27
|
+
from .restore import (
|
|
28
|
+
ScheduleRestoreActionKindV1,
|
|
29
|
+
ScheduleRestoreActionV1,
|
|
30
|
+
ScheduleRestoreExecutionStepV1,
|
|
31
|
+
ScheduleRestoreMappingV1,
|
|
32
|
+
ScheduleRestorePlanV1,
|
|
33
|
+
)
|
|
34
|
+
from .transport import BLETransport
|
|
35
|
+
|
|
36
|
+
__all__ = [
|
|
37
|
+
"BLETransport",
|
|
38
|
+
"BleakBackend",
|
|
39
|
+
"ActivePlanDeletionError",
|
|
40
|
+
"AmbiguousPlanNameError",
|
|
41
|
+
"BackupDayplanV1",
|
|
42
|
+
"BackupDeviceMismatchError",
|
|
43
|
+
"BackupSourceDeviceV1",
|
|
44
|
+
"BackupValidationError",
|
|
45
|
+
"BackupWeekplanV1",
|
|
46
|
+
"Dayplan",
|
|
47
|
+
"DayplanQuickHeating",
|
|
48
|
+
"DayplanTransition",
|
|
49
|
+
"IHCClient",
|
|
50
|
+
"Identity",
|
|
51
|
+
"IndeterminateRegistrationError",
|
|
52
|
+
"OperatingMode",
|
|
53
|
+
"PlanNotFoundError",
|
|
54
|
+
"PlanReferencedError",
|
|
55
|
+
"ScheduleInventory",
|
|
56
|
+
"ScheduleBackupV1",
|
|
57
|
+
"ScheduleRestoreActionKindV1",
|
|
58
|
+
"ScheduleRestoreActionV1",
|
|
59
|
+
"ScheduleRestoreExecutionStepV1",
|
|
60
|
+
"ScheduleRestoreMappingV1",
|
|
61
|
+
"ScheduleRestorePlanV1",
|
|
62
|
+
"ScheduleState",
|
|
63
|
+
"Status",
|
|
64
|
+
"Weekday",
|
|
65
|
+
"Weekplan",
|
|
66
|
+
]
|