Skip to main content

Python library for SystemNexa2 device integration

Project description

python-sn2

Python library for SystemNexa2 device integration.

This package provides a client library for communicating with SystemNexa2 smart home devices over WebSocket and REST APIs. It supports device discovery, real-time state updates, brightness control, and configuration management.

Supported Devices

  • Switches: WBR-01
  • Plugs: WPR-01, WPO-01
  • Lights: WBD-01, WPD-01

Key Features

  • Asynchronous communication via WebSocket and REST
  • Real-time device state updates
  • Brightness control for dimmable devices
  • Device settings management (433MHz, LED, DIY mode, etc.)
  • Automatic reconnection handling
  • Error handling and logging

Installation

pip install python-sn2

Usage

"""Example usage of the python-sn2 library."""

import asyncio
import logging

from sn2.device import Device

logger = logging.getLogger(__name__)


async def main() -> None:
    """Demonstrate device usage."""
    # Create a device instance
    device = Device(host="192.168.1.144")

    # Initialize the device
    await device.initialize()

    # Connect to the device
    await device.connect()

    # Set brightness
    await device.set_brightness(0.75)

    # Get device information
    info = await device.get_info()
    if info:
        logger.info("Device: %s", info.information.name)

    # Disconnect
    await device.disconnect()


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    asyncio.run(main())

Development

This project uses uv for dependency management.

Setup the development environment:

./scripts/test-setup

Or manually:

# Create virtual environment and install package
uv venv
uv pip install -e ".[dev]"

Run tests:

uv run pytest

Run linting:

uv run ruff check .
uv run ruff format .

Release Process

This project uses automated versioning and releases. To create a new release:

Automated (Recommended)

# Bump patch version (0.1.0 -> 0.1.1)
./scripts/release.sh patch

# Bump minor version (0.1.0 -> 0.2.0)
./scripts/release.sh minor

# Bump major version (0.1.0 -> 1.0.0)
./scripts/release.sh major

This will:

  1. Run tests and linting
  2. Bump version in pyproject.toml and sn2/__init__.py
  3. Create a git commit and tag
  4. Push to GitHub
  5. Trigger GitHub Actions to build and publish to PyPI

Manual

# Install bump-my-version
pip install bump-my-version

# Bump version
bump-my-version bump patch  # or minor/major

# Push changes and tags
git push origin main --tags

The GitHub Actions workflow will automatically:

  • Create a GitHub release with release notes
  • Build the package
  • Publish to PyPI (via Trusted Publishing)

License

MIT License

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

python_sn2-0.2.3.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

python_sn2-0.2.3-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file python_sn2-0.2.3.tar.gz.

File metadata

  • Download URL: python_sn2-0.2.3.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for python_sn2-0.2.3.tar.gz
Algorithm Hash digest
SHA256 23a19324d96a0908c89764b5f31c55408e1034e6724c03e68d897365d7527737
MD5 01610059c892aa64c939c650d41378c1
BLAKE2b-256 e19f984d2a9dde46206889875b519e06b2a2b5dda6cd91e0a54b7435d98311a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_sn2-0.2.3.tar.gz:

Publisher: release.yml on konsulten/python-sn2

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

File details

Details for the file python_sn2-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: python_sn2-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for python_sn2-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cc07670430e46d78d65b88781f3c40d76ba79ff548b99357ea6f386fa8eebdc3
MD5 4a709bdc213dd4d54d93b521e2426ef4
BLAKE2b-256 b055435aa604dbec8339c1f1096bbd9b717000bf1e73c0c058e26fb463be011a

See more details on using hashes here.

Provenance

The following attestation bundles were made for python_sn2-0.2.3-py3-none-any.whl:

Publisher: release.yml on konsulten/python-sn2

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