Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Python library for controlling a Kramer media switch that uses Protocol 2000 over a TCP connection.
It's primarily intended for use as a device driver for a Home Assistant integration.
from kesslerav 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.lock() # Lock front panel
media_switch.unlock() # Unlock front panel
media_switch.update() # Refreshes device state
See src/kesslerav/media_switch.py
for full MediaSwitch
capabilities.
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 Protocol 2000 (identifier: protocol2k
.)
Examples:
10.0.0.1
->
Scheme: tcp
, Host: 10.0.0.1
, Port: 5000
, Protocol: protocol2k
localhost:1337
->
Scheme: tcp
, Host: localhost
, Port: 1337
, Protocol: protocol2k
localhost:1337#protocol2000
->
Scheme: tcp
, Host: localhost
, Port: 1337
, Protocol: protocol2k
tcp://10.0.0.1
->
Scheme: tcp
, Host: 10.0.0.1
, Port: 5000
, Protocol: protocol2k
tcp://switch.local:8080
->
Scheme: tcp
, Host: switch.local
, Port: 8080
, Protocol: protocol2k
tcp://localhost:8080#protocol2k
Scheme: tcp
, Host: localhost
, Port: 8080
, Protocol: protocol2k
The library was tested and developed using a Kramer VS-161HDMI switch, but should work for any Kramer switch using Protocol 2000.
It does not currently support:
The library has extension points for adding the support above should an opportunity or need to do so arise.
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
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
Run unit tests:
script/test
Tests can also be continuously run while developing with:
ptw .
To build distributables:
script/build
Build artifacts will be placed in the dist
directory.
Build the distribution.
script/build
Publish the library to TestPyPI.
script/publish_test
Publish the library to PyPI.
script/publish
kessler-av
?In Seinfeld, the character Cosmo Kramer was based on comedian Kenny Kramer. In the shows pilot episode, the producers hadn't gotten permission to use Kramer's name, so the character was called Kessler instead.
This library controls Kramer A/V's media switches, but doesn't have
permission to use their trademarked name. As a result, it seemed fitting to
name it kessler-av
.
FAQs
API for controlling a Kramer media switch using Protocol 2000
We found that kessler-av demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.