Implementation/abstraction of the Ness D8x / D16x Serial Interface ASCII protocol
Project description
nessclient
A python implementation/abstraction of the Ness D8x / D16x Serial Interface ASCII protocol
Supported Models
- D8X
- D8X_CEL_3G
- D8X_CEL_4G
- D16X
- D16X_CEL_3G
- D16X_CEL_4G
- D32X
- DPLUS8
Installing nessclient
nessclient is available directly from pip:
pip install nessclient
Documentation
The full documentation can be found at Read the Docs
CLI
This package includes a CLI which uses the library to interface with the Ness Serial Interface. You can read more in the docs
To use the CLI you must install it's dependencies by installing it with extras for cli:
pip install nessclient[cli]
ness-cli --help
The CLI exposes several high level commands:
events– listen for alarm events emitted by a connected panel in a terminal UI with live zone status and event logs.send– send a raw command to the panel.server– run a dummy panel server, useful for local development when an alarm panel isn't available.version– print the installed package version.
Run ness-cli COMMAND --help for full options on each command.
Server zones
The dummy server can simulate a configurable number of zones independent of the panel model. Use --zones to set the count (1–32):
ness-cli server --zones 24 --panel-model D8X --panel-version 8.7
S00status includes unsealed zones in 1–16 (or fewer if the configured count is < 16).S20always responds: it returns an empty set when the configured count is ≤ 16; otherwise it reports unsealed zones in 17–N.
Capturing raw packets
When reporting issues it can be helpful to provide the raw ASCII packets
exchanged with the panel. The events command accepts a --logfile option that
records each transmitted (TX) and received (RX) packet:
ness-cli events --logfile packets.log
Include the generated log file with bug reports to assist with troubleshooting.
API Documentation
You can find the full API documentation here
Examples
Please see Examples section in the docs for examples. These same examples can be found as source in the examples/ directory.
Developing
For a quick development setup, install dependencies and tooling with uv:
uv sync --dev --all-extras
Before submitting changes, ensure code is formatted, linted, type-checked and tested:
uv run ruff format .
uv run ruff check .
uv run mypy --strict nessclient
uv run pytest
See the Developing section in the docs for more details on contributing and environment setup.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nessclient-1.3.1.tar.gz.
File metadata
- Download URL: nessclient-1.3.1.tar.gz
- Upload date:
- Size: 485.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a042e85a0465d83beae455678119b20bdcba37122b47e9cfc935d5f3f40e66e7
|
|
| MD5 |
52a0e09bc8e9051de0cec6395c12d5a0
|
|
| BLAKE2b-256 |
6270f2822ad72cb3f2ab239ea2a37bffdde0986abb0538bb7b2e0082a8318290
|
Provenance
The following attestation bundles were made for nessclient-1.3.1.tar.gz:
Publisher:
workflow.yaml on nickw444/nessclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nessclient-1.3.1.tar.gz -
Subject digest:
a042e85a0465d83beae455678119b20bdcba37122b47e9cfc935d5f3f40e66e7 - Sigstore transparency entry: 458213036
- Sigstore integration time:
-
Permalink:
nickw444/nessclient@a642f3518cddb13608840dfa6a78e11932ed2569 -
Branch / Tag:
refs/tags/1.3.1 - Owner: https://github.com/nickw444
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@a642f3518cddb13608840dfa6a78e11932ed2569 -
Trigger Event:
push
-
Statement type:
File details
Details for the file nessclient-1.3.1-py3-none-any.whl.
File metadata
- Download URL: nessclient-1.3.1-py3-none-any.whl
- Upload date:
- Size: 47.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f148caf530ba432c7f26e87e0a499806210a85bd7883d98094d3daf0d1bf2ebc
|
|
| MD5 |
97938cba1525614ceb1ebc8e4dbc8773
|
|
| BLAKE2b-256 |
a0fb38a0455c3cba21e535561f1427175b1e609ffe34e8ce9a26ae70d7dcccdf
|
Provenance
The following attestation bundles were made for nessclient-1.3.1-py3-none-any.whl:
Publisher:
workflow.yaml on nickw444/nessclient
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nessclient-1.3.1-py3-none-any.whl -
Subject digest:
f148caf530ba432c7f26e87e0a499806210a85bd7883d98094d3daf0d1bf2ebc - Sigstore transparency entry: 458213038
- Sigstore integration time:
-
Permalink:
nickw444/nessclient@a642f3518cddb13608840dfa6a78e11932ed2569 -
Branch / Tag:
refs/tags/1.3.1 - Owner: https://github.com/nickw444
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@a642f3518cddb13608840dfa6a78e11932ed2569 -
Trigger Event:
push
-
Statement type: