elgato-pi-deck - Is a puthon script to control Elgato Stream Deck and send actions to elgato-pi-deck-server.
elgato-pi-deck - Is a python script to control Elgato Stream Deck and send actions to elgato-pi-deck-server.
Install packages:
sudo apt install -y python3-pip python3-setuptools
sudo apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0
sudo apt install -y libjpeg-dev zlib1g-dev
Install Python packages:
sudo pip3 install wheel
sudo pip3 install pillow
sudo pip3 install streamdeck
sudo pip3 install wakeonlan
This guide is intended to help you to configure the script parameters (config.json) and software.
For this example elgato-pi-deck are be installed on Raspberry Pi (This is only an example):
Clone this repo in /opt
cd /opt
sudo git clone https://github.com/pablomenino/elgato-pi-deck/
cd /opt/elgato-pi-deck/
Install:
sudo ./install.sh
Yo can assign new butons editing the configuration file.
Example config:
{
"info": "elgato-pi-deck",
"version": "0.9",
"FONT_SRC": "Roboto-Regular.ttf",
"FONT_SIZE": "16",
"PANEL_SELECT": "0",
"PANEL_BRIGHTNESS": "30",
"PANEL_BRIGHTNESS_STEP": "10",
"deck_poweron": "True",
"panel0":
[
{
"type": "gotopanel",
"name": "Apps",
"gotopanelid": "1",
"image": "icons/utilities.png",
"image_pressed": "icons/utilities-pressed.png"
},
{
"type": "gotopanel",
"name": "IoT",
"gotopanelid": "2",
"image": "icons/iot.png",
"image_pressed": "icons/iot.png"
},
{
"type": "wakeonlan",
"name": "NAS",
"image": "icons/1618plus.png",
"image_pressed": "icons/1618plus.png",
"nodename": "NAS",
"nodeip": "192.168.0.22",
"nodemac": "00:FF:AA:FF:AA:BB"
},
{
"type": "bright0",
"name": "Bright 0%",
"image": "icons/brightness-0.png",
"image_pressed": "icons/brightness-0.png"
},
{
"type": "brightless",
"name": "Bright -",
"image": "icons/brightness-less.png",
"image_pressed": "icons/brightness-less.png"
},
{
"type": "brightmore",
"name": "Bright +",
"image": "icons/brightness-more.png",
"image_pressed": "icons/brightness-more.png"
},
{
"type": "bright100",
"name": "Bright 100%",
"image": "icons/brightness-100.png",
"image_pressed": "icons/brightness-100.png"
}
],
"panel1":
[
{
"type": "gotopanel",
"name": "Back To Main Panel",
"gotopanelid": "0",
"image": "icons/back.png",
"image_pressed": "icons/back-pressed.png"
},
{
"type": "action",
"name": "Firefox",
"image": "icons/firefox.png",
"image_pressed": "icons/firefox.png",
"action": "firefox",
"serverip": "192.168.0.10",
"serverport": "8889"
}
],
"panel2":
[
{
"type": "gotopanel",
"name": "Back To Main",
"gotopanelid": "0",
"image": "icons/back.png",
"image_pressed": "icons/back-pressed.png"
},
{
"type": "webhook",
"name": "Ligth CPU",
"image": "icons/ligth.png",
"image_pressed": "icons/ligth.png",
"webhookurl": "http://192.168.0.48/api/webhook/200"
}
]
}
"FONT_SRC": "Roboto-Regular.ttf",
"FONT_SIZE": "16",
You can add new fonts to Assets/fonts directory.
"PANEL_SELECT": "0",
"PANEL_BRIGHTNESS": "30",
This example set the screen brightness to 30%
"deck_poweron": "True",
By default is always on.
The script assign the last key in panel (panel0) to power on/power off display.
"type": "blank",
"name": "",
"image": "icons/utilities.png",
"image_pressed": "icons/utilities-pressed.png"
name: name to display.
Images path is in the Assets folder
"type": "gotopanel",
"name": "Apps",
"gotopanelid": "1",
"image": "icons/utilities.png",
"image_pressed": "icons/utilities-pressed.png"
name: name to display.
gotopanelid: is the panel id to change.
Images path is in the Assets folder
"type": "wakeonlan",
"name": "NAS",
"image": "icons/1618plus.png",
"image_pressed": "icons/1618plus.png",
"nodename": "NAS",
"nodeip": "192.168.0.22",
"nodemac": "00:FF:AA:FF:AA:BB"
name: node name
nodeip: device ip address to check if alive
nodemac: device mac address
Images path is in the Assets folder
"type": "bright0",
"name": "Bright 0%",
"image": "icons/brightness-0.png",
"image_pressed": "icons/brightness-0.png"
"type": "brightless",
"name": "Bright -",
"image": "icons/brightness-less.png",
"image_pressed": "icons/brightness-less.png"
"type": "brightmore",
"name": "Bright +",
"image": "icons/brightness-more.png",
"image_pressed": "icons/brightness-more.png"
"type": "bright100",
"name": "Bright 100%",
"image": "icons/brightness-100.png",
"image_pressed": "icons/brightness-100.png"
"type": "action",
"name": "Firefox",
"image": "icons/firefox.png",
"image_pressed": "icons/firefox.png",
"action": "firefox",
"serverip": "192.168.0.10",
"serverport": "8889"
name: name to display
action: action to be executed on remote server
serverip: server ip address
serverport: server port
"type": "webhook",
"name": "Ligth CPU",
"image": "icons/ligth.png",
"image_pressed": "icons/ligth.png",
"webhookurl": "http://192.168.0.48/api/webhook/200"
name: name to display
webhookurl: webhook address
sudo ./uninstall.sh