Skip to main content

Implementation/abstraction of the Ness D8x / D16x Serial Interface ASCII protocol

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nessclient-1.3.1.tar.gz (485.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nessclient-1.3.1-py3-none-any.whl (47.4 kB view details)

Uploaded Python 3

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

Hashes for nessclient-1.3.1.tar.gz
Algorithm Hash digest
SHA256 a042e85a0465d83beae455678119b20bdcba37122b47e9cfc935d5f3f40e66e7
MD5 52a0e09bc8e9051de0cec6395c12d5a0
BLAKE2b-256 6270f2822ad72cb3f2ab239ea2a37bffdde0986abb0538bb7b2e0082a8318290

See more details on using hashes here.

Provenance

The following attestation bundles were made for nessclient-1.3.1.tar.gz:

Publisher: workflow.yaml on nickw444/nessclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for nessclient-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f148caf530ba432c7f26e87e0a499806210a85bd7883d98094d3daf0d1bf2ebc
MD5 97938cba1525614ceb1ebc8e4dbc8773
BLAKE2b-256 a0fb38a0455c3cba21e535561f1427175b1e609ffe34e8ce9a26ae70d7dcccdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for nessclient-1.3.1-py3-none-any.whl:

Publisher: workflow.yaml on nickw444/nessclient

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page