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 | Provenance | Actions |
|---|---|---|---|---|
| nessclient-1.3.1.tar.gz | 485.3 kB | With provenance | Details for nessclient-1.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| nessclient-1.3.1-py3-none-any.whl | Python 3 | none | any | Details for nessclient-1.3.1-py3-none-any.whl |
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 logSecurity for nessclient 1.3.1
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for nessclient-1.3.1.tar.gz
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 logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.