This project has been archived by its maintainers, and is no longer receiving any updates.
SC010 Controller Library
A Python library for controlling and managing SC010 AV over IP controllers using Telnet.
Features
- Easy-to-use interface for SC010 controller management
- Automatic device discovery on the network
- Comprehensive device and system information retrieval
- Matrix switching control
- Video wall configuration
- Device status monitoring
- Scene management
- CEC control support
- Robust error handling and connection management
Installation
pip install sc010-controller
Quick Start
from sc010 import Controller, ConnectionConfig
# Find controller on network
controller_info = Controller.find_controller()
if controller_info:
print(f"Found controller at IP: {controller_info['ip']}")
print(f"Controller MAC: {controller_info['mac']}")
# Connect to controller
config = ConnectionConfig(
ip="192.168.50.200",
timeout=2.0,
max_retries=3,
retry_delay=1.0,
gather_info=True
)
# Using context manager for automatic connection/disconnection
with Controller(config=config) as controller:
# Get device list
devices = controller.get_devicelist()
print("Available devices:", devices)
# Get device names and aliases
device_names = controller.get_device_name()
for device in device_names:
print(f"{device['trueName']} -> {device['alias']}")
# Control matrix switching
controller.set_matrix("TX1 RX1 RX2", "TX2 RX3 RX4")
# Get video wall configuration
vw_config = controller.get_vw()
print("Video wall config:", vw_config)
Documentation
Connection Configuration
The ConnectionConfig class allows you to customize the connection settings:
config = ConnectionConfig(
ip="192.168.50.200", # Controller IP address
port=23, # Telnet port (default: 23)
timeout=1.0, # Connection timeout in seconds
max_retries=3, # Number of connection retries
retry_delay=1.0, # Delay between retries in seconds
gather_info=True # Whether to gather device info on connection
)
Main Features
- Device Discovery: Find controllers on the network
- Device Management: Get device lists, names, and status
- Matrix Control: Configure video routing
- Video Wall: Set up and manage video walls
- CEC Control: Send CEC commands to displays
- System Configuration: Manage network settings and system parameters
Error Handling
The library includes comprehensive error handling:
from sc010 import SC010Error, ConnectionError, CommandError, ParseError
try:
with Controller(config=config) as controller:
# Your code here
except ConnectionError as e:
print(f"Connection failed: {e}")
except CommandError as e:
print(f"Command failed: {e}")
except ParseError as e:
print(f"Parse error: {e}")
except SC010Error as e:
print(f"General error: {e}")
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Developed for use with SC010 AV over IP controllers
- Compatible with various IP-based video distribution systems
Metadata
Release files for sc010-controller 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sc010_controller-0.1.0.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sc010_controller-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.8 kB
Release files / sc010_controller-0.1.0.tar.gz
| Download URL | sc010_controller-0.1.0.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5d6b5dbb566f32db67abc03dbac9b6485b9179db18e237fd415976715e7190d
|
|
BLAKE2b-256 checksum How to use checksums |
840305232e95b2b669ea9aafac05853c694e28ce5b66dc2cc7c90e6bf63870da
|
| 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 May 30, 2025.
Transparency logRelease files / sc010_controller-0.1.0-py3-none-any.whl
| Download URL | sc010_controller-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35b2703247d841fa372fa5f844359bd3c365789e97e251f2ef83929ee39dd03c
|
|
BLAKE2b-256 checksum How to use checksums |
422afbb55a44be42b54a8a39ac1ad06c36511ad42ac0283b1b42a63b1cff8c54
|
| 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 May 30, 2025.
Transparency log