API for controlling a TESmart media switch using Hex protocol
Project description
teeheesmart
Python library for controlling a TESmart media switch over a TCP connection using their un-named Hex protocol.
It's primarily intended for use as a device driver for a Home Assistant integration.
USAGE
from teeheesmart import get_media_switch
device_url = '10.0.0.1'
media_switch = get_media_switch(device_url)
media_switch.select_source(3) # Change to input 3
media_switch.update() # Refreshes device state
See src/teeheesmart/media_switch.py
for full MediaSwitch
capabilities.
Device URL format
The URL takes the form of <scheme>://<host>:<port>#<protocol>
with all
but host
being optional.
Default scheme is tcp
, with a default port of 5000
.
Default protocol is Hex (identifier: hex
.)
Examples:
10.0.0.1
-> Scheme:tcp
, Host:10.0.0.1
, Port:5000
, Protocol:hex
localhost:1337
-> Scheme:tcp
, Host:localhost
, Port:1337
, Protocol:hex
localhost:1337#hex
-> Scheme:tcp
, Host:localhost
, Port:1337
, Protocol:hex
tcp://10.0.0.1
-> Scheme:tcp
, Host:10.0.0.1
, Port:5000
, Protocol:hex
tcp://switch.local:8080
-> Scheme:tcp
, Host:switch.local
, Port:8080
, Protocol:hex
Limitations
The library was tested and developed using a TESmart HSW-1601, but should work for any TESmart switch using their Hex protocol.
It does not currently support:
- Matrix switch operations, since I don't have a device to test with
- Serial communication, since TCP is the more likely control mechanism for home automation purposes
The library has extension points for adding the support above should an opportunity or need to do so arise.
Development workflow
Python environment
Workflow scripts assume a working Python environment, including pip
.
Remember to be kind to yourself and use a virtual environment.
python3 -m venv env
env/bin/activate
Setup
Install development and runtime dependencies. This also installs the library as an
editable path, so that it can be loaded in the REPL and pytest
.
script/setup
Tests
Run unit tests:
script/test
Tests can also be continuously run while developing with:
ptw .
Build
To build distributables:
script/build
Build artifacts will be placed in the dist
directory.
Publishing
Build the distribution.
script/build
Publish the library to TestPyPI.
script/publish_test
Publish the library to PyPI.
script/publish
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
Built Distribution
File details
Details for the file teeheesmart-0.8.0.tar.gz
.
File metadata
- Download URL: teeheesmart-0.8.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d76f0bd70f39562832553b8afe96cacd5bab8767c538ea326df528ad1326209c |
|
MD5 | bcc074b4116d0c76ca69b5d12383ca45 |
|
BLAKE2b-256 | 30e6bbe5cf12552cf5d0309af082af62f1e8f107b351b2752f680b7750a0a46c |
File details
Details for the file teeheesmart-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: teeheesmart-0.8.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbb2e52fbb1b315f9477bd667ba25a5f53ffa374a9392002fa97ea1450af18cb |
|
MD5 | ea58fe2feadce842c3291c1a29f4ec2f |
|
BLAKE2b-256 | fa35844e00f560497387b20751e2c709e58465647891f0e2cb387197d703346b |