Skip to main content

XP Protocol Communication Tools

Project description

🔌 XP Protocol Communication Tool

PyPI version Python package codecov Python 3.10+ License: MIT Checked with mypy

A powerful Python CLI and API toolkit for CONSON XP Protocol operations

Control and communicate with XP devices through console bus (Conbus), parse telegrams in real-time, and integrate with smart home systems like Apple HomeKit.


✨ Key Features

🚀 Real-time Communication Connect directly to XP130/XP230 servers with bidirectional TCP communication

📡 Smart Telegram Processing Parse and validate event, system, and reply telegrams with built-in checksum verification

🏠 HomeKit Integration Bridge XP devices to Apple HomeKit for seamless smart home control

🔍 Device Discovery Automatically discover XP servers and scan connected modules on your network

Modern Architecture FastAPI REST endpoints and comprehensive type safety


🚀 Quick Start

# Install with PIP (recommended)
pip install conson-xp

# Parse a telegram
xp telegram parse "<E14L00I02MAK>"

# Discover XP servers on your network
xp conbus discover

# Start the REST API server
xp api start

📦 Installation

Using PIP (Recommended)

pip install conson-xp

Development Installation

# Using PDM

git clone <repository-url>

pip install pdm

pdm install -G dev

📚 Usage

🎯 Core Operations

Telegram Processing

# Parse any telegram (auto-detect type)
xp telegram parse "<E14L00I02MAK>"
xp telegram parse "<S0020012521F02D18FN>"
xp telegram parse "<R0020012521F02D18+26,0§CIL>"

# Validate telegram integrity
xp telegram validate "<E14L00I02MAK>"

Device Communication

# Discover XP servers on your network
xp conbus discover

# Connect and scan for modules
xp conbus scan <serial_number> <function_code>
xp conbus scan 0123450001 02

# Control device outputs
xp conbus output <action> <serial_number> <ouput_number>
xp conbus output off 0123450001 00
xp conbus output on 0123450001 01
xp conbus output status 0123450001

# Blink device for identification
xp conbus blink <action> <serial_number>
xp conbus blink on 0123450001
xp conbus blink all on
xp conbus blink all off

Module Information

# Get module details
xp module info 14
xp module search "push button"

# List available modules
xp module list --group-by-category

🔧 Advanced Features

Real-time Operations
# Listen for event telegrams
xp conbus receive

# Send custom telegrams
xp conbus custom <serial_number> <function_code> <action_code>
xp conbus custom 01234500001 02 02

# Read/write datapoints
xp conbus datapoint <datapoint> <serial_number>
xp conbus datapoint hw_version 01234500001
xp conbus datapoint auto_report_status 01234500001
xp conbus datapoint voltage 01234500001
Checksum Operations
# Calculate and validate checksums
xp checksum calculate "E14L00I02M"
xp checksum validate "E14L00I02M" "AK"
xp checksum calculate "E14L00I02M" --algorithm crc32

🌐 API & Integration

REST API Server

# Start API server with interactive docs at /docs
xp api start

HomeKit Smart Home Bridge

# Set up HomeKit integration
xp homekit config validate
xp homekit start
Module emulators
# Start XP protocol servers
xp server start
xp reverse-proxy start

🏗️ Architecture

Layered Design

CLI Layer → API Layer → Services → Models → Connection Layer

Key Components: Telegram processing • Real-time Conbus communication • HomeKit bridge • Multiple XP server support • Configuration management


🛠️ Development

Quick Development Setup

# Run tests with coverage
pdm run test

# Code quality checks
pdm run lint && pdm run format && pdm run typecheck

# All quality checks at once
pdm run check
Project Structure
src/xp/
├── api/           # FastAPI REST endpoints
├── cli/           # Command-line interface
├── models/        # Core data models
├── services/      # Business logic
└── utils/         # Utility functions
Functionalities
xp

xp help

xp api
xp api start


xp cache
xp cache clear
xp cache get
xp cache items
xp cache set
xp cache stats


xp conbus

xp conbus blink

xp conbus blink all
xp conbus blink all off
xp conbus blink all on

xp conbus blink off
xp conbus blink on

xp conbus config
xp conbus custom
xp conbus datapoint
xp conbus discover

xp conbus output
xp conbus output off
xp conbus output on
xp conbus output state
xp conbus output status

xp conbus raw
xp conbus receive
xp conbus scan


xp file
xp file analyze
xp file decode
xp file validate

xp help

xp homekit

xp homekit config
xp homekit config show
xp homekit config validate

xp homekit start


xp module
xp module categories
xp module info
xp module list
xp module search


xp rp
xp rp start
xp rp status
xp rp stop


xp server
xp server start
xp server status
xp server stop


xp telegram

xp telegram blink
xp telegram blink off
xp telegram blink on


xp telegram checksum
xp telegram checksum calculate
xp telegram checksum validate

xp telegram discover

xp telegram linknumber
xp telegram linknumber read
xp telegram linknumber write

xp telegram parse
xp telegram validate
xp telegram version

Requirements: Python 3.10+ • FastAPI • Pydantic • Click • HAP-python

License

MIT License - see LICENSE file for details.

Notice

This software is developed for interoperability purposes only under fair use provisions and EU Software Directive Article 6. See NOTICE.md for full details on intellectual property compliance.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

conson_xp-0.9.33.tar.gz (189.8 kB view details)

Uploaded Source

Built Distribution

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

conson_xp-0.9.33-py3-none-any.whl (156.8 kB view details)

Uploaded Python 3

File details

Details for the file conson_xp-0.9.33.tar.gz.

File metadata

  • Download URL: conson_xp-0.9.33.tar.gz
  • Upload date:
  • Size: 189.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.25.9 CPython/3.9.23 Darwin/24.6.0

File hashes

Hashes for conson_xp-0.9.33.tar.gz
Algorithm Hash digest
SHA256 dc9702264181959c17196dd442fcc545db3faa57ceabee01b9963610c80ec03a
MD5 a6f95fd23dbd071b8d2f5d4dcde941f8
BLAKE2b-256 743f4ac4ef0742e13a00cbf2fea5dba6c3a2258a2f37c20d275074c9dfb44b5e

See more details on using hashes here.

File details

Details for the file conson_xp-0.9.33-py3-none-any.whl.

File metadata

  • Download URL: conson_xp-0.9.33-py3-none-any.whl
  • Upload date:
  • Size: 156.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.25.9 CPython/3.9.23 Darwin/24.6.0

File hashes

Hashes for conson_xp-0.9.33-py3-none-any.whl
Algorithm Hash digest
SHA256 4de46f5c02029cf0b516c03884d61f7cf7f78fcee399abd8411ce82ded02b9d3
MD5 afcae0f4304b128cf2636684e55456a7
BLAKE2b-256 e6ca1145c783cc29caeec5ffdc4baf00b7b2882e9973e56de577f80e7fefe9c6

See more details on using hashes here.

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