Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

Stream Deck API Library

Project description

PyPI version

streamdeckapi

Stream Deck API Library for Home Assistant Stream Deck Integration

Only compatible with separate Stream Deck Plugin or the bundled server.

Server inside docker container

The docker image allows you to use the streamdeckapi server inside a docker container.

Usage

docker run -v /dev/hidraw7:/dev/hidraw7 -v ./data/streamdeckapi:/streamdeckapi/data -p 6153:6153 --privileged ghcr.io/patrick762/streamdeckapi:main

Note: You have to change hidraw7 to the path of your Stream Deck. You can find this path by using lshid (https://pypi.org/project/lshid/).

Limitations

  • No zeroconf discovery
  • No doubleTap event

Server without docker

This library also contains a server to use the streamdeck with Linux or without the official Stream Deck Software.

For this to work, the following software is required:

Cairo Installation for Windows:

pip install pipwin

pipwin install cairocffi

Limitations

  • No doubleTap event

Installation on Linux / Raspberry Pi

Install requirements: sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0 libjpeg-dev zlib1g-dev libopenjp2-7 libtiff5 libgtk-3-dev python3-pip

Allow all users non-root access to Stream Deck Devices:

sudo tee /etc/udev/rules.d/10-streamdeck.rules << EOF
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="uaccess"
EOF

Reload access rules: sudo udevadm control --reload-rules

Install the package: pip install streamdeckapi

Reboot your system

Start the server: streamdeckapi-server

Example service

To run the server on startup, you can use the following config in the file /etc/systemd/system/streamdeckapi.service:

[Unit]
Description=Stream Deck API Service
Wants=network-online.target
After=network.target

[Service]
WorkingDirectory=/home/pi
ExecStart=/home/pi/.local/bin/streamdeckapi-server
User=pi
StandardOutput=console

[Install]
WantedBy=multi-user.target

To start the service, run sudo systemctl start streamdeckapi.service.

To enable the service, run sudo systemctl enable streamdeckapi.service.

Supported by

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