__ __ _ _ _
\ \ / /__ _ __ | | _(_) |_
\ V / _ \ '_ \| |/ / | __|
| | __/ |_) | <| | |_
|_|\___| .__/|_|\_\_|\__|
|_|
Yepkit YKUSH Python library and command line tool
Provides library and command line functionality for communicating with a YKUSH device over USB.
Thanks to the developers and maintainers of the following projects among others:
- HIDAPI multi-platform library
- Python hidapi wrapper module
- Python hidapi-cffi wrapper module Any of the above python wrappers are currently supported.
- Easy to use
- Written to support YKUSH, the Yepkit USB Switchable Hub
- Open-source, please be our guest to collaborate
- Current development version supports both Python 2 and 3
- Works on Linux, Windows and Mac
- A Linux, Windows or Mac (OS X) system
- A YKUSH device
- A recent Python 2 >=2.7.9 or Python 3 >=3.4 installed
- hidapi or hidapi-cffi module installed
If you are in a hurry and just need a console application you can give our Pyinstaller bundled executable a try:
- Windows executable, Windows XP or newer
- macOS executable, El Capitan or newer
- Linux x86_64, kernel 2.6 or newer
- Linux i386, kernel 2.6 or newer
Download the executable corresponding to your platform and run it from a terminal window. Also remember to authorize execution on Linux or macOS systems:
$ chown u+x pykush
$ ./pykush -l
Anonymous:
$ git clone https://github.com/Yepkit/pykush
$ cd pykush/
$ python setup.py install
Git:
$ git clone git@github.com:Yepkit/pykush
$ cd pykush/
$ python setup.py install
$ python pykush.py -h
usage: pykush.py [-h] [-s SERIAL]
(-l | -u [UP [UP ...]] | -d [DOWN [DOWN ...]] | -r READ | -w WRITE WRITE | -p)
Yepkit YKUSH command line tool.
optional arguments:
-h, --help show this help message and exit
-s SERIAL, --serial SERIAL
specify the serial number string of the YKUSH to be
listed or managed
-l, --list list YKUSH devices
-u [UP [UP ...]], --up [UP [UP ...]]
the downstream port numbers to power up, none means
all
-d [DOWN [DOWN ...]], --down [DOWN [DOWN ...]]
the downstream port numbers to power down, none means
all
-r READ, --read READ the GPIO pin to read from
-w WRITE WRITE, --write WRITE WRITE
the GPIO pin to write to
-p, --persist make the current running configuration persistent
across reboots (only supported on devices with
firmware v2.0 and above)
$ python pykush.py -l
listing YKUSH family devices
found a YKUSH release 2 device with serial number YK20001
system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
the device is running a v1.2 firmware and has 3 downstream ports
downstream running power states, port 1 to 3: UP, UP, UP
$ python pykush.py -d 1 2
managing YKUSH family devices
found a YKUSH release 2 device with serial number YK20001
system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
the device is running a v1.2 firmware and has 3 downstream ports
powering DOWN port 1... done
powering DOWN port 2... done
$ python
>>> import pykush
>>> yk = pykush.YKUSH()
>>> yk.set_allports_state_up()
True
>>> yk.get_downstream_port_count()
3
>>> yk.set_port_state(2, pykush.YKUSH_PORT_STATE_DOWN)
True
>>> yk.get_port_state(2)
0
>>> yk.get_port_state(2) == pykush.YKUSH_PORT_STATE_DOWN
True
>>>
The module is already usable in the limited scope we tested but it is still in a alpha stage.
If you find a problem, please submit a bug report on issue tracker.