[](https://badge.fury.io/py/streamdeckapi)
# streamdeckapi
Stream Deck API Library for Home Assistant Stream Deck Integration
Only compatible with separate [Stream Deck Plugin](https://github.com/Patrick762/streamdeckapi-plugin) or the bundled server.
## Server inside docker container
The docker image allows you to use the streamdeckapi server inside a docker container.
### Usage
```shell
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:
- LibUSB HIDAPI [Installation instructions](https://python-elgato-streamdeck.readthedocs.io/en/stable/pages/backend_libusb_hidapi.html) or [Installation instructions](https://github.com/jamesridgway/devdeck/wiki/Installation)
- cairo [Installation instructions for Windows](https://stackoverflow.com/a/73913080)
Cairo Installation for Windows:
```bash
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:
```bash
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`:
```conf
[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`.
Raw data
{
"_id": null,
"home_page": "https://github.com/Patrick762/streamdeckapi",
"name": "streamdeckapi",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Patrick762",
"author_email": "<pip-stream-deck-api@hosting-rt.de>",
"download_url": "https://files.pythonhosted.org/packages/a5/83/711bb97f0cdae53327d8cab7fad6f6a5b173dcec5188bdf0204da8a9e6db/streamdeckapi-0.0.13.tar.gz",
"platform": null,
"description": "\n[](https://badge.fury.io/py/streamdeckapi)\n\n# streamdeckapi\nStream Deck API Library for Home Assistant Stream Deck Integration\n\nOnly compatible with separate [Stream Deck Plugin](https://github.com/Patrick762/streamdeckapi-plugin) or the bundled server.\n\n## Server inside docker container\nThe docker image allows you to use the streamdeckapi server inside a docker container.\n\n### Usage\n```shell\ndocker run -v /dev/hidraw7:/dev/hidraw7 -v ./data/streamdeckapi:/streamdeckapi/data -p 6153:6153 --privileged ghcr.io/patrick762/streamdeckapi:main\n```\n\n**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/).\n\n## Limitations\n- No zeroconf discovery\n- No `doubleTap` event\n\n## Server without docker\nThis library also contains a server to use the streamdeck with Linux or without the official Stream Deck Software.\n\nFor this to work, the following software is required:\n\n- LibUSB HIDAPI [Installation instructions](https://python-elgato-streamdeck.readthedocs.io/en/stable/pages/backend_libusb_hidapi.html) or [Installation instructions](https://github.com/jamesridgway/devdeck/wiki/Installation)\n- cairo [Installation instructions for Windows](https://stackoverflow.com/a/73913080)\n\nCairo Installation for Windows:\n```bash\npip install pipwin\n\npipwin install cairocffi\n```\n\n### Limitations\n- No `doubleTap` event\n\n### Installation on Linux / Raspberry Pi\n\nInstall requirements:\n`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`\n\nAllow all users non-root access to Stream Deck Devices:\n```bash\nsudo tee /etc/udev/rules.d/10-streamdeck.rules << EOF\nSUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"0fd9\", GROUP=\"users\", TAG+=\"uaccess\"\nEOF\n```\n\nReload access rules:\n`sudo udevadm control --reload-rules`\n\nInstall the package:\n`pip install streamdeckapi`\n\nReboot your system\n\nStart the server:\n`streamdeckapi-server`\n\n### Example service\nTo run the server on startup, you can use the following config in the file `/etc/systemd/system/streamdeckapi.service`:\n\n```conf\n[Unit]\nDescription=Stream Deck API Service\nWants=network-online.target\nAfter=network.target\n\n[Service]\nWorkingDirectory=/home/pi\nExecStart=/home/pi/.local/bin/streamdeckapi-server\nUser=pi\nStandardOutput=console\n\n[Install]\nWantedBy=multi-user.target\n```\n\nTo start the service, run `sudo systemctl start streamdeckapi.service`.\n\nTo enable the service, run `sudo systemctl enable streamdeckapi.service`.\n",
"bugtrack_url": null,
"license": null,
"summary": "Stream Deck API Library",
"version": "0.0.13",
"project_urls": {
"Homepage": "https://github.com/Patrick762/streamdeckapi"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8a2c03e3069a362aa7c9c3d716d26930fa9c09df1c6ebfa8e127fd1dba89f845",
"md5": "b6dc190cb71486cf2e6e76b07f9a0ba8",
"sha256": "b66c174b8d2afe6668d57ec8403d8dbbb29bea0a293a2302830812b03912dc20"
},
"downloads": -1,
"filename": "streamdeckapi-0.0.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b6dc190cb71486cf2e6e76b07f9a0ba8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12706,
"upload_time": "2024-12-21T21:24:53",
"upload_time_iso_8601": "2024-12-21T21:24:53.739098Z",
"url": "https://files.pythonhosted.org/packages/8a/2c/03e3069a362aa7c9c3d716d26930fa9c09df1c6ebfa8e127fd1dba89f845/streamdeckapi-0.0.13-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a583711bb97f0cdae53327d8cab7fad6f6a5b173dcec5188bdf0204da8a9e6db",
"md5": "6452e0fe1f7d74e43d0a96c4f06bc15a",
"sha256": "fdf9d48464289187938ef63710e5fc917f6d0f0b4619a933217b13741f4b61d6"
},
"downloads": -1,
"filename": "streamdeckapi-0.0.13.tar.gz",
"has_sig": false,
"md5_digest": "6452e0fe1f7d74e43d0a96c4f06bc15a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12636,
"upload_time": "2024-12-21T21:24:55",
"upload_time_iso_8601": "2024-12-21T21:24:55.914312Z",
"url": "https://files.pythonhosted.org/packages/a5/83/711bb97f0cdae53327d8cab7fad6f6a5b173dcec5188bdf0204da8a9e6db/streamdeckapi-0.0.13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-21 21:24:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Patrick762",
"github_project": "streamdeckapi",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "streamdeckapi"
}