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.
Metadata
Release files for nessclient 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nessclient-1.3.1.tar.gz | 485.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nessclient-1.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 532.8 kB
Release files / nessclient-1.3.1.tar.gz
| Download URL | nessclient-1.3.1.tar.gz |
|---|---|
| Size | 485.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a042e85a0465d83beae455678119b20bdcba37122b47e9cfc935d5f3f40e66e7
|
|
BLAKE2b-256 checksum How to use checksums |
6270f2822ad72cb3f2ab239ea2a37bffdde0986abb0538bb7b2e0082a8318290
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2025.
Transparency logRelease files / nessclient-1.3.1-py3-none-any.whl
| Download URL | nessclient-1.3.1-py3-none-any.whl |
|---|---|
| Size | 47.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f148caf530ba432c7f26e87e0a499806210a85bd7883d98094d3daf0d1bf2ebc
|
|
BLAKE2b-256 checksum How to use checksums |
a0fb38a0455c3cba21e535561f1427175b1e609ffe34e8ce9a26ae70d7dcccdf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2025.
Transparency log