Skip to main content

nessclient

codecov

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
  • S00 status includes unsealed zones in 1–16 (or fewer if the configured count is < 16).
  • S20 always 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)

Source distribution for nessclient 1.3.1
File Size Uploaded
nessclient-1.3.1.tar.gz 485.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nessclient 1.3.1
File Interpreter ABI Platform
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 log

Release 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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page