Streamdeck Tasten mit Python belegen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
August1328
User
Beiträge: 65
Registriert: Samstag 27. Februar 2021, 12:18

Hallo zusammen,

ich habe ein Streamdeck, also ne extra Konsole, bei der man die Tasten mir selbstdefinierten Funktionen oder Aufrufen belegen kann. Ein nettes Spielzeug, wer das nicht kennt - hier im Forum gibt es laut Suche noch nichts dazu.

Ich spiele schon länger mit dem Gedanken für mein Hobby die Tasten (dynamisch) per Python zu belegen und habe diese Woche ein wenig Zeit gehabt zu rechechieren und zu testen.

Nun ja, nun stecke ich fest, wie immer, wenn es zu viel neues ist, aber ich fang mal vorne an:

Bei Github findet man mehrere Beiträge und ich habe mir folgende 3 angesehen und ein wenig getestet:

1. python-elgato-streamdeck https://github.com/abcminiuser/python-elgato-streamdeck
Soweit gut, schien mir auf den ersten Blick etwas komplex einzelne Tasten zu belegen

2. DevDeck https://github.com/jamesridgway/devdeck
HIer gibt es diverse Funktionen, die ich zum Großteil nicht brauche, wie Lautstärke leiser/lauter und ich hab´s auf die schnelle nicht geschafft nen Python Skript aufzurufen

3. StreamDeckLayoutManager https://github.com/DidierMalenfant/Stre ... outManager
Das hier baut auf dem ersten auf und ist dafür gedacht, um in eigene Skripte zu integrieren und dynamisch Tasten zu belegen, das suche ich

Die ersten Schritte waren nicht so schwer, mit folgenden Zeilen habe ich die ein paar farbige Tasten mit Beschriftung auf dem Streamdeck:

Code: Alles auswählen

import StreamDeckLayoutManager

streamdeck_manager = StreamDeckLayoutManager.Manager('C:/Users/ah/trading/streamdeck/StreamDeckConfig.toml')

# Vorlage: streamdeck_manager.setKey('MainPage', 12, 'MyImage.png', 'My Label',['MyCallbackName', 'test_argument', 2])

streamdeck_manager.setKey('Hotkeys', 0, 'orange.png', 'Close ALL',[close_all])
streamdeck_manager.setKey('Hotkeys', 2, 'green.png', 'Buy TSLA',[buy_py, 'TSLA'])
streamdeck_manager.setKey('Hotkeys', 3, 'red.png', 'Sell TSLA',[sell_py, 'TSLA'])
streamdeck_manager.setKey('Hotkeys', 5, 'green.png', 'Buy MSFT',[buy_py, 'MSFT'])
streamdeck_manager.setKey('Hotkeys', 6, 'red.png', 'Sell MSFT',[sell_py, 'MSFT'])

streamdeck_manager.displayPage('Hotkeys')
Jetzt muss man nur noch die Tasten mit der richtigen Funktion / Callback verknüpfen und das war´s schon...

Also habe ich ne kurze (Callback?) Funktion eingefügt, die nen Python Skript ruft und dann versucht das gemäß Vorgabe

Code: Alles auswählen

streamdeck_manager.setCallback(self, callback_name: str, callback)
zu äh verknüpfen, aber irgendwas habe ich nicht verstanden.

Ich hab mir auch diese Beispiele angesehen https://buzzcoder.gitbooks.io/codecraft ... ments.html, aber verstehe nicht, warum brauche ich 2 Funktionen, eine innere und eine äußere?

Eigentlich muss ich nur 1 Argument, z.b. 'TSLA' an einen Skript Aufruf übergeben, das habe ich an anderer Stelle schon hinbekommen, aber diese 2 Funktionen überfordern mich, vielleicht sitze ich auch schon zu lange vorm Rechner :?

Es wäre super, wenn jemand meine Lernkurve beschleunigen könnte - wie sieht die richtige Definition der Callback Funktion und setCallback() aus? Oder habe ich bei setKey() schon nen Fehler gemacht?

Danke & Grüße,
Andy
Antworten