Skip to main content

Library to control PiKVM with Python

Project description

PiKVM-Lib: A Python library for controlling/automating PiKVM Devices

codecov

PiKVM-Lib is a Python library that provides a simple and intuitive API for controlling PiKVM devices. With PiKVM-Lib, you can easily perform various actions on your PiKVM devices, such as:

  • Getting system information
  • Controlling ATX power
  • Managing Mass Storage Device (MSD) images
  • Interacting with General-Purpose Input/Output (GPIO) channels
  • Taking snapshots and receive image
  • Reading snapshots with OCR and receive text representation
  • Send keys to the server

With PiKVM-Lib, you can automate tasks, integrate PiKVMs into your existing applications, and extend the capabilities of your PiKVM devices.

Installation

To install PiKVM, simply run the following command in your terminal:

pip install pikvm-lib

PiKVM device control

After installing PiKVM, you can import it into your Python script and create an instance of the PiKVM class. The PiKVM class constructor takes the following parameters:

  • hostname: The hostname or IP address of the PiKVM device
  • username: The username for authentication
  • password: The password for authentication
from pikvm_lib import PiKVM

pikvm_instance = PiKVM(hostname="192.168.1.10", username="admin", password="password")

Once you have created an instance of the PiKVM class, you can use it to interact with your PiKVM device. For example, you can get the system information of the device:

system_info = pikvm_instance.get_system_info()
print(system_info)

You can also control the ATX power of the device:

pikvm_instance.set_atx_power(action="on")

For more information on how to use PiKVM, please refer to the official documentation: PiKVM official web and PiKVM API Reference

Usage examples

Here are some examples of how to use PiKVM to perform common tasks:

  • Getting system information:
from pikvm_lib import PiKVM

pikvm_instance = PiKVM(hostname="192.168.1.10", username="admin", password="password")
system_info = pikvm_instance.get_system_info()
print(system_info)
  • Turning on the ATX power:
pikvm_instance.set_atx_power(action="on")
  • Uploading an MSD image:
pikvm_instance.upload_msd_image(filepath="/path/to/image.iso")
  • Connecting the MSD:
pikvm_instance.connect_msd()
  • Switching a GPIO channel:
pikvm_instance.switch_gpio_channel(channel=1, state=1)
  • Take snapshot and receive OCR text:
pikvm_instance.get_streamer_snapshot(snapshot_path="/home/user/pikvm-snapshots",
                            filename="test.txt", ocr=True)
  • Take snapshot and receive image:
pikvm_instance.get_streamer_snapshot(snapshot_path="/home/user/pikvm-snapshots",
                            filename="test.jpeg", ocr=False)

PiKVM websocket

The PiKVMWebsocket class is a Python class that allows you to send keyboard events to a PiKVM server over WebSocket.

It provides methods for sending individual keys, key combinations, and text input.

The class also handles the connection to the PiKVM server and the parsing of the WebSocket messages.

Usage examples

from pikvm_lib import PiKVMWebsocket

hostname = "192.168.1.10"  # Replace with your PiKVM server's hostname or IP address
username = "user"
password = "password"

# Create a PiKVMWebsocket object
websocket = PiKVMWebsocket(hostname, username, password)

# Send the Ctrl+Alt+Delete key combination
websocket.send_ctrl_alt_sup()

# Send the text "Hello, world!"
websocket.send_input("Hello, world!")
from pikvm_lib import PiKVMWebsocket

hostname = "192.168.1.10"  # Replace with your PiKVM server's hostname or IP address
username = "user"
password = "password"

# Create a PiKVMWebsocket object
websocket = PiKVMWebsocket(hostname, username, password)

# Send the F2 key
websocket.send_key("<F2>")

# Send the Ctrl+B key
websocket.send_key_press("ControlLeft", "true")
websocket.send_input("b") # or websocket.send_key("KeyB")
websocket.send_key_press("ControlLeft", "false")

Project details


Download files

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

Source Distribution

pikvm_lib-0.4.2.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

pikvm_lib-0.4.2-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file pikvm_lib-0.4.2.tar.gz.

File metadata

  • Download URL: pikvm_lib-0.4.2.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pikvm_lib-0.4.2.tar.gz
Algorithm Hash digest
SHA256 20599f856272066d78a4926ff279e7635710a6a392c902b3f21573d000aa2c85
MD5 f36f2ad38adf7885fe7daae0ef30b857
BLAKE2b-256 5245bfe4b4377f9da2d0ea5f20d283b75794662e838cb1d96c14938acd1fb371

See more details on using hashes here.

File details

Details for the file pikvm_lib-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: pikvm_lib-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pikvm_lib-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fdbb36e652e7e35a31c8d3d50634516fa43f431b7f4b24902ff79dd12cd87b29
MD5 5718de61571bbfbffa909d63be56cb56
BLAKE2b-256 57b6dab9e274faeb6dbf53c599d022e72bc509c213df6e6a8fd3539dc80a49c0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page