HOME

Companion

Die Treibersoftware companion(von bitfocus) macht die Stream Decks(von elgato) auch unter Linux nutzbar.

companion zielt eher auf professionelle Nutzer ab, sei es das Streamen von irgendwelchen "Kanälen" im Internet oder die Arbeit an Computerprogrammen zu vereinfachen..

Mehr als 450 vorinstallierte Schnittstellen zu mehr -oder weniger- bekannten Anwendungen wurden bisher entwickelt und auch zur Verfügung gestellt.
BISHER ist die Nutzung für Privatanwender kostenlos, man muss lediglich eine e-Mail-Adresse anmelden, ohne diese Anmeldung kann man sich weder die Software noch Updates herunterladen -.-
Wer den harten Weg gehen möchte, hier das Repository companion@github.

Installation(Linux)

Nach der Anmeldung mit einer e-Mailadresse kann man sich unter companion@bitfocus.io unter DOWNLOADS die Software herunterladen.
Zuerst entscheidet man sich für für die "Plattform" Companion | Companion Pi | Companion Satellite und sucht sich dort entsprechend die gewünschte Version: Stable | Beta | Experimental

Offizielle Wiki für die Installation: Installation@github.com
Für die lokale Installation wählt man also Companion.
Es folgt dann die Auswahl des Betriebssystems: Linux.tgz(arm64) | Linux.tgz |Mac Apple Silicon | Mac Intel | Windows

Linuxer mit AMD/Intel Prozessoren wählen natürlich Linux.tgz


Die heruntergeladene *tar.gz Datei in einen Ordner z.B. ~/test/ kopieren und DORT entpacken via tar -xf archive.tar.gz.
Es *sollte* dann dort ein Ordner namens.. /companion-x64/ entstehen. Dort hineinwuseln und via ./companion bzw. ./companion-launcher starten um zu prüfen ob es fehlerfrei funktioniert.

Klappt das soweit companion im Terminal mit dem oben aufgeführten Befehl durch CTRL+c beenden.
Das Bild auf dem Stream Deck friert nun ein(da der "Server" companion beendet wurde.)

Den (eventuell bereits bestehenden) Ordner ~/companion-x64 löschen!
Keine Sorge, zuvor definierte Tasten/Designs/Tastenbilder sind unabhängig unter ~.config/companion/v3.2/ in einer *.db gesichert.

Den entpackten Ordner ~/test/companion-x64 nach ~/companion-x64 verschieben.
EINMALIG einen Eintrag im Startmenü erstellen:
Programm: ~/companion-x64/companion-launcher
Unter Einstellungen-Systemsteuerung-Starten und Beenden-Autostart prüfen ob dort companion mit den korrekten Startwert eingetragen ist(companion-launcher!!)


Bisher lautete der Name des Startscripts ./companion, dieses wurde aber ab Version 3.3 geändert in ./companion-launcher!!
Wer die neuen Dateien einfach in den bisherigen Ordner herüber kopiert hat wird in den Fehler laufen das ALTE Skript aufzurufen(was nicht funktioniert)!!

Es gibt ein weiteres Startscript ./companion_headless.sh das einen anderen Pfad zur Datenbank erwartet ~/.config/companion-nodejs/v3.2 und nur leere "Seiten" im Stream Deck zeigt.
Zusätzlich ändert es den Zugriff auf die Bitfocus Companion Webconfigseite auf http:0.0.0.0:8000


Wer Debian verwendet(möglicherweise in einer *älteren* LTS Version) kennt das leidige Problem:
Debian gilt als sehr konservativ was die Aktualität jeglicher Bibliotheken angeht, die WELT entwickelt sich schneller weiter als Debian hinterherkommt..
So sind oft Abhängigkeiten NICHT mehr erfüllbar wenn bitfocus zu neueren Bibliotheken wechselt.. sprich: Die Installation schlägt unter Debian fehl-.-

Abhilfe:
* zu neueren Debian Versionen upgraden
* eine ältere companion-Version versuchen..


Ein Update von Linux bullseye auf bookworm war etwas komplizierter als gedacht..
Einige (Fremd)-Pakete verhinderten das saubere Upgrade.
blender z.B. musste komplett gepurged werden wegen Abhängigkeitsproblemen. Seltsam.
NACH dem Upgrade auf bookworm bauten sich die "Buttons" des Streamdecks viel langsamer auf als zuvor. Firefox laggte plötzlich beim Anzeigen mehrerer Instanzen von homeassistant.
top zeigte ungewöhnlich hohe Lasten bei Firefox und companion..
Vorher konnte ein Jahr lang keine neue companion-Version mehr installiert werden wegen fehlerhafter Abhängigkeiten(veraltete Linux Version bullseye)
Mit aktueller companion-Version beschleunigte sich der "Buttons"-Aufbau wieder auf gewohnte Werte und die Last auf allen Prozessoren fiel auch wieder ab.
Seltsam. Aber gut. Scheint gelöst zu sein :)

Konfiguration..

Ehrlicherweise stößt mich die UNGEWÖHNLICHE Bedienung des companion arg ab.
Sicher: Es hat mehrere Vorteile gegenüber streamdeck_ui:
* 100 Pages(statt nur 10)
* toggle Funktion(Tastendruck schaltet EIN, nochmaliger Druck schaltet AUS..)
* "Variablen" können auf den Buttons angezeigt werden, z.b.: Uhrzeit und Datum?!!
* viele Vorlagen(für Programme, die ich nicht mal kenne/nutze)
* verschiedene Schriftgrößen für die Labels(Text auf Tasten) (die blöderweise hin und herzappeln weil nicht monospace -.- )
* Tasten können kopiert und verschoben werden(wenn man das System versteht und nicht aus Versehen die falschen überschreibt -.-)

Die Zielgruppe von Companion sind.. wahrscheinlich professionelle Streamer und andere Stageakrobaten.
Es FEHLT die Möglichkeit Makros abzuspielen(Textbausteine eintippen zu lassen) völlig.
Mit einem kleinen Umweg ist das machbar.. aber auch hier.. zu kompliziert:
Ein Button muss mit "internal: Run shell path (local)" belegt werden,
als Path folgendes verwenden: xdotool key less t d greater less KP_Divide t d greater
(dieses Beispiel DRÜCKT die Tasten für den Text <td></td>)
Extra nervig ist die Suche nach den richtigen Codes für die Tasten.. -.-
Beispiel: KP_6 sollte die Taste des Zehnerblockes "6" sein. Passiert aber nichts weil: abhängig vom Status der Numlock Taste!!
KP_Right wäre die zweite Möglichkeit die Taste "6" im Zehnerblock abzufragen..ebenfalls abhängig vom Status der Numlock Taste!

Einige Beispiele für xdotool:
BefehlWirkung
xdotool type 'Hello world!'Text wird ausgegeben so wie eingetippt
xdotool mousemove x yMauszeiger zur Position x,y bewegen
xdotool mousemove_relative -- x yMauszeiger RELATIV zur Position x,y bewegen
Für einige Spiele kann man damit die Positionierung von Gebäuden pixelgenau einstellen:
xdotool mousemove_relative -- 1 0 Um den Mauszeiger einen Pixel nach rechts zu bewegen..
xdotool mousemove_relative -- -1 0 Um den Mauszeiger einen Pixel nach links zu bewegen..

Der große Nachteil ist die umständliche und auch unverständliche(für Normalsterbliche) Konfiguration an allen Ecken und Enden.
Zuerst muss man sich den Kram herunterladen, das ist nachher ein ganz schön großer Brocken.. (Beispieldatei: companion-x64-2.3.1+4641-v2-3.1-dc01ac7c.tar.gz)
Diese dann irgendwohin entpacken und dort auch starten?? k.A. hätte ich mir das bloß aufgeschrieben -.-
Jedenfalls kann man den Kram dann in einem Terminal starten. Solange das Terminal läuft sollte auch die GUI(WEB!!) laufen.
Der Kram wird über einen mini-http-Server? gesteuert?.
Kann auch umgebogen werden mit system-d oder so damit das als Dienst automatisch gestartet wird. nun ja.

Wenn es denn mal läuft.. die Konfiguration:
Beispiel: Die Vorlage für den VLC-Player nutzen..
Nein, sooo einfach geht es dann doch nicht. VLC Player muss erst umgestellt werden um "Fernsteuerung" via http/LUA zu nutzen.
Sucht man in den Vorlagen nach vlc einfach mal die Icons daneben anklicken..
Wenn man das geschafft hat(VLC player neu starten!)
Und die Verbindung steht die vorgegebenen Buttons herüberziehen(Play, Pause, Stop,..)
Der Lohn des Ganzen: Man kann tatsächlich vlc steuern, auch wenn der gerade nicht auf dem aktuellen Desktop aktiv ist :)

Schwieriger wird es wenn man Lösungen sucht die NICHT in den Vorlagen vorhanden sind..
Die Vorlagen verlassen sich auf err.. "Server-Fernsteuerungen" der einzelnen Programme.
Bei den VLC Player-Vorlagen gibt es Play, Pause, Stop... aber es fehlt eine MUTE-Funktion. Möglichkeiten der Tastensteuerung(@videolan.org)
Sicher, man kann die Lautstärke via "Server" auf Null setzen aber es fehlt eine Rückmeldung über die VORHERIGE Lautstärke..

Beispiel einiger shell-commands(xdotool muss zuvor installiert sein):
xdotool search --name 'VLC Media Player' windowactivate --sync key m Focus auf Fenster mit TEIL-Titel"VLC Media Player" wird Tastendruck m=Toggle Mute übergeben


Das Muten(stummstellen) funktioniert NUR wenn der VLC Media Player Focus NICHT im Dateienmenü/Favoritenliste liegt.
Quasi muss man einmalig irgendwo in dem Fenster klicken, sei es die untere Leiste oder sonstwo.
Danach klappt das ohne Probleme.

xdotool search --name 'VLC Media Player' key --window %1 m Focus unverändert, Fenster mit TEIL-Titel "VLC Media Player" wird Tastendruck m=Toggle Mute übergeben
xdotool search --name 'VLC Media Player' key --window %1 ctrl+Up Focus unverändert, Fenster mit TEIL-Titel "VLC Media Player" wird Tastendruck ctrl+hoch=Lautstärke erhöhen übergeben
xdotool search --name 'VLC Media Player' key --window %1 ctrl+Down Focus unverändert, Fenster mit TEIL-Titel "VLC Media Player" wird Tastendruck ctrl+runter=Lautstärke verringern übergeben


Entgegen der Hinweise von streamdeck-ui weichen Tastencodes für Pfeil-Hoch/Runter ab (vergl. gitlab.com).
FALSCH wäre: up bzw. arrow_up. Richtig: Up (Groß/Kleinschreibung beachten!)

Um die Befehle zu testen sollte man die auch in der Konsole direkt eingeben. Falls der Tastencode unbekannt ist wird das sofort angezeigt.


xdotool ist KEIN guter Ersatz für die mehrfache schnelle Eingabe von (längeren) Texten wie es mit CTRL+v möglich ist!
Die "Eingabegeschwindigkeit" entspricht maximal denen der Tastatureinstellung..(da tatsächlich jede Taste einzeln simuliert wird).
Das Einfügen der Zwischenablage erfolgt hingegen quasi in Echtzeit!

Definiert man ein "Macro" und nutzt es zu schnell hintereinander VERMISCHEN sich die einzelnen "Macros"!
Das Macro "Hallo" mehrfach schnell genutzt gibt dann nicht "HalloHalloHallo" aus sondern "HaHallolo" oder ähnlichen Unsinn; Zeichen gehen verloren bzw. die Reihenfolge wird verändert -.-

Um dieses Problem zu umgehen kann man mit diversen Befehlen die Zwischenablage manipulieren:

BefehlInstallationHinweis
gpmapt install gpmKonsole(eher ein Maus-Server!)
xclipapt install xclip oder pacman -S xclip oder dnf install xclipX-Server
xselapt install xsel X-Server, nervt mit Fehlermeldung wenn Clipboardinhalt kein CR enthält!
Diese Befehle greifen auf die Zwischenablage(Clipboard) zu, allerdings.. hat Linux mehr als eine Zwischenablage..
--Text kopieren(Konsole)Text einfügen(Konsole)Text kopieren(X-Server)Text einfügen(X-Server)
clipboardCTRL+SHIFT+c (markierter Text wird kopiert)CTRL+SHIFT+v (markierter Text wird eingefügt)CTRL+c (markierter Text wird kopiert)CTRL+v (markierter Text wird eingefügt)
clipboardSHIFT+INS (markierter Text wird eingefügt)SHIFT+INS (markierter Text wird eingefügt)
primaryM1 (Textbereich mit gedrückter Taste markieren)M3 (markierter Text wird an Mausposition eingefügt)M1 (Textbereich mit gedrückter Taste markieren)M3 (markierter Text wird an Mausposition eingefügt)
primaryCTRL+SHIFT+INS
secondary????
cutbufferCTRL+u (aktuelle Zeile wird bis Cursor ausgeschnitten)CTRL+y (aktuelle Zeile wird eingefügt)
echo -n "Hallo" | xclip schreibt den Text "Hallo" in die "PRIMARY"-Zwischenablage.
Via Maus kann man auch Textbereiche markieren(z.B. im Editor/Internetseiten..).
In beiden Fällen wird der Text ausgegeben wenn man auf die mittlere Maustaste drückt!

Die Ausgabe der Zwischenablage(via Companion) funktioniert NICHT wie erwartet:
xclip -o -selection clipboard gibt zwar in der Konsole den gewünschten Inhalt aus.. via Companion jedoch GAR nichts.
Bedingung: die "Umgebung" des Befehls muss in stdout laufen, keine Konsole=keine Ausgabe -.-

Also dreht man die ganze Sache etwas um:
Zuerst weist man der Zwischenablage(welcher auch immer!) den gewünschten Text zu:
echo -n "h123" | xclip -selection clipboard
# echo -n "h123" (echo dient der Ausgabe; -n als Parameter unterdrückt einen Zeilenvorschub und zwischen den Anführungszeichen ist der zu übermittelnde Text h123)
# | (dient als Trenner zwischen mehreren Befehlen, hier wird die Ausgabe von echo direkt an xclip weitergereicht)
# xclip -selection clipboard (xclip verschiebt den "erhaltenen" Text weiter zur normalen Zwischenablage (-selection clipboard))


Bevor man sich die Mühe macht den Tastencode für SSHIFT+INS zu finden.. immer daran denken das DIESE Tastenbelegung nicht für alle anderen Umgebungen identisch sein wird..
EIGENTLICH könnte man statt der "normalen" die "primary" Zwischenablage nutzen und den Text dann via mittlerer Maustaste einfügen um "überall" zu funktionieren.
Dieses ÜBERALL ist das Problem: verschiebt sich der Mauszeiger wird beim Drücken der Streamdeck-Taste plötzlich WOANDERS Text eingefügt oder noch schlimmer irgendwelche Aktionen ausgelöst(Browser öffnet neue Fenster, etc.)
Daher sollte man doch die *normale* Zwischenablage nutzen..

Nur zur INFO die "Emulation" der dritten Maustaste um den Inhalt der "primary" einzufügen:
xdotool mouse click 2 (xdotool zählt von links, daher ist 2 die MITTLERE Taste..)

Und hier die "Emulation" der gedrückten Tastenkombination für SHIFT+INS um den Inhalt des "Clipboards" einzufügen:
xdotool key shift+Insert

War ja klar, das es nicht wie erwartet funktioniert:
Beim ERSTEN drücken der zugewiesenen Streamdeck-Taste wird der VORHERIGE Inhalt der primary-Zwischenablage ausgegeben.
Erst bei weiteren Drücken die gewünschten(neuen) Inhalte..
WEIL:
Bei Auslösung mehrere Befehle für einen Tastendruck(Streamdeck/Companion) werden diese zeitgleich gestartet!!
Während xclip noch dabei ist den echo-Befehl auszuführen ist xdotool schon fertig mit dem Mausklick(und der Ausgabe des unberührten primary-Clipboards..)

Es ist DOCH möglich an den Inhalt der secondary Clipboards zu gelangen um es via Companion auszugeben:
xdotool type $(xclip -o -sel sec) allerdings nur für GANZ kurze Texte, sonst gibts Murks in der Ausgabe -.-


key sendet einen Tastendruck und auch das anschließende Loslassen der Taste.
keydown würde eine Taste soo lange gedrückt halten bis die mit dem folgenden Befehl gelöst wird..
keyup löst den Tastendruck wieder.
Funktioniert nur, wenn das Fenster im Focus ist!
- Pressactions: internal Run shell path(local) xdotool search --name 'VLC Media Player' keydown --window %1 ctrl+Down
- Releaseaction: Run shell path(local): xdotool search --name 'VLC Media Player' keyup --window %1 ctrl+Down

Vergisst man "releaseaction" keyup.. wird in jedem(fokussierten) Fenster lustig nach unten gescrollt..

Ein paar Bastellösungen..


Die folgenden Lösungen sind.. sicher nicht der Weisheit letzter Schrei oder so.
Es sind vielmehr VERSUCHE etwas zu erreichen(unter Linux gibt es sehr viele verschiedene Lösungsansätze)..

TLTR:
Es sind experimentelle Krücken die als Idee-Anstubser verstanden werden sollten..

Bei der Wiedergabe von Musik aus Dateien/Radiostreams bekommt man einfach nicht den Künstler/Titelnamen heraus(VLC Player).
Der einzige Weg scheint die Abfrage des VLC Media Player FENSTERTITEL zu sein..

Mittels xwininfo kann man einen Mausklick auf das VLC Fenster durchführen um dessen "ID" herauszubekommen.

Ist diese ID bekannt(hier im Beispiel 0x8000006) reicht der Befehl xwininfo -id 0x8000006 um (für die Sitzung) immer wieder den Namen abzufragen:

xwininfo: Window id: 0x8000006 "Rich Ragsdale - Tyrago - VLC media player"
Absolute upper-left X: 1
Absolute upper-left Y: 47
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 3838
Depth: 24
Visual Class: TrueColor
Visual: 0x4fd
Border width: 0
Class: InputOutput
Colormap: 0x8000005 (not installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsUnMapped
Override Redirect State: no
Corners: +1+47 -1+47 -1-1189 +1-1189
-geometry 1919x462+1+47

sed wählt nur die ZWEITE Zeile aus(die erste ist LEER!):
xwininfo -id 0x8000006 | sed '2!d'
xwininfo: Window id: 0x8000006 "Rich Ragsdale - Tyrago - VLC media player"

cut soll Anführungszeichen als "Trenner" nutzen und den Text nach dem ersten Vorkommen(-f2) ausgeben(-f1 wäre VOR dem Trenner!):
xwininfo -id 0x8000006 | sed '2!d' | cut -d '"' -f2
Rich Ragsdale - Tyrago - VLC media player

sed wird nochmals genutzt um den Text - VLC media player zu entfernen:
xwininfo -id 0x8000006 | sed '2!d' | cut -d '"' -f2 | sed 's/ - VLC media player//'
Rich Ragsdale - Tyrago


Die bisherige "Lösung" funktioniert nur einmal, da die Fenster IDs bei jedem Start anders aussehen werden.
Anstelle TÄGLICH von Hand das richtige Fenster mit der Maus anzuklicken um die neue ID kopieren zu können..
..nutzt man einfach die Suchfunktion von xdotool: xdotool search --name "VLC Media Player"
Die Suche ist sehr nützlich, da sie auch einen TEIL des Namens im Fenstertitel akzeptiert! Der Titel bei der Wiedergabe ändert ja auch den Fenstertitel..
Die gefundene ID wird in dezimaler Schreibweise ausgegeben.

Patcht man die xdotool Suche in den obigen Befehl hinein sollte es automatisch klappen:
xwininfo -id $(xdotool search --name "VLC Media Player") | sed '2!d' | cut -d '"' -f2 | sed 's/ - VLC media player//'


Man *könnte* diese Befehlszeile mittels companion in bestimmten Intervallen starten lassen, so etwa alle 10 Sekunden oder so..
Der Text sollte dann ausgegeben werden..

1.) es muss eine Custom Variable erstellt werden, z.B. vlctext, current value:none, startup value: empty
2.) Das Textfeld des Buttons muss diese Variable enthalten: $(internal:custom_vlctext)
3.) Bei der Buttondefinition unter Press actions muss internal: Run shell path (local) hinzugefügt werden.
4.) Unter Path wird der Shellbefehl geschrieben: xwininfo -id 0x8000006 | sed '2!d' | cut -d '"' -f2 | sed 's/ - VLC media player//'
5.) Unter Target Variable (stdout) wird nun die Custom Variable ausgewählt: A custom Variable(vlctext)

Problem: Der Text wird nur manuell aktualisiert, man muss also jedes mal draufdrücken wenn man den Künstler/Titel sehen möchte -.-
Es sei denn..
..man definiert als Button Release einen Befehl namens.. Button Press+Release..
Das Timing wird in Millisekunden angegeben(1000ms=1s!).
Für erste Versuche:
* Press action delay: 0(shell path script)
* Release action delay: 10000(Button press & release)

Rand der Taste flackert doof bei jedem "virtuellen" Druck gelb.
Lösung: Hintergrund der Taste eben gelb setzen..

Alternativer Weg die ID des Fensters jedes mal neu zu bestimmen(ohne Maus :D ):
xwinctrl -l
0x02400019 -1 oppa Arbeitsfläche — Plasma
0x02400038 -1 oppa Plasma
0x0620002c 3 oppa x11 - Is there a linux command to determine the window IDs associated with a given process ID? - Stack Overflow - Mozilla Firefox
0x08000006 2 oppa A Flock of Seagulls - Space Age Love Song - VLC media player

Ausführlicher geht es mit wmctrl -lp (Option "p" kann weggelassen werden, wer braucht schon process ids)

DER Königsweg um den TEILNAMEN vom VLC Media Player zu finden:
xdotool search --name "VLC Media Player"
134217734
Was nun in hexadezimal wieder 08 00 00 06 entsprechen würde..

Button-Einstellungen

Durch Drücken einer Streamdeck-Taste irgendeine Aktion auszulösen ist einfach.
Sobald companion gestartet wurde sollte unten in der "Taskleiste"(je nach Einstellung des Desktop-Managers) ein Symbol auftauchen: Bild: Taskleiste mit Symbol Companion.
Ein RECHTSKLOCK auf das Symbol öffnet das zugehörige Kontextmenu:
* Show/Hide Window öffnet das "kleine" Companion Fenster: Config/Launch/Hide/Quit
* Launch GUI öffnet via Browser das "große" Companion-Fenster: Button-Definitionen..
* Scan USB Device sucht erneut nach angeschlossenen Streamdeck(z.B. nach Standby-Modus nötig..)

Bild: Companion-Buttons erstellen.
1. Buttonbearbeitung(diese Ansicht)
2. Auswahl der aktuell zu bearbeiten "Page"
3. Mit Mausklick können hier die einzelnen "Buttons" zur Bearbeitung ausgewählt werden
4. Default: Oberhalb des Buttontextes wird die Position des Buttons angezeigt, hier 5.20(Page 5, Button 20). Grau=nicht belegt.
5. Aktuell ausgewählter "Button"(roter Rahmen)
6. Kopieren/Bewegen von Buttons: ERST gewünschte Funktion anklicken, dann den AUSGANGS-Button, dann den ZIEL-Button.
...Delete Button: Erst DELETE anklicken, dann den Button, dann "Bank löschen/Clear" bestätigen.
...Wipe Page: Die gesamte aktuelle Page leeren, kein UNDO möglich..
...Reset Page Buttons: die "Navigations-Buttons" werden wieder nach Vorgabe gesetzt. Rest bleibt unberührt.
7. Regular Button, es wird IMMER dieser Button-Typ genutzt. Es sei denn man möchte(weitere) Navigationsbuttons hinzufügen(um die Pages zu wechseln)


In diesem Beispiel..
Die "Navigationsbuttons" wurden einzeln eine Zeile nach "unten" verschoben.
Da ich mir nicht merken kann wozu "Page 5" denn gut sein soll ist im linken oberen Button(5.1) eben der NAME der jeweiligen Anwendung angegeben(game conqueror).

Ein Druck auf Button 5.16 schaltet um zur ersten "Page"; Button 5.9(Up) schaltet eine "Page" weiter, Button 5.17(Down) eine zurück.
Die "Set" Buttons geben einer selbstdefinierten Variable den entsprechenden Buttonwert vor, "Enter++" tippt diesen Wert ein(+ nächste Zeile) und erhöht die Variable mit jedem weiteren Druck.
Die "Enter" Buttons tippen die auf dem Buttons angegebene Zahl ein und springen in die nächste Zeile.
(Passend zum Speichereditor von game conqueror.. ^^)


Den ersten Button "beschriften":
Ein beherzter Druck auf Regular Button im Kontextmenü(siehe vorheriges Bild) ändert die Darstellung der Seite:

Problemlösungen

Wird ein StreamDeck einfach nicht unter Linux erkannt kann es mehrere Ursachen geben:
* Fehler bei der Installation der Treiber(nur runtergeladen und entpackt, aber NICHT installiert bzw. gestartet..)
* USB Port überladen/defekt/gebrochen, Kabel gammelig, ..
* Gerät defekt
Hat man KEINEN Zugriff auf einen Windowsverseuchten Rechner schaut man in die Logdateien, z.B. /var/log/syslog.
Dieser wirre Fehler erschien dort unter "Kernel":
kernel: [ 46.825129] streamdeck[3143]: segfault at 8 ip 00007feac0845397 sp 00007ffdca69f020 error 4 in libQt5Widgets.so.5[7feac06a8000+630000]
Für meine bescheidenen Kenntnisse sieht das übelst nach einem Problem mit dem MK2 aus da mein XL aus der selben Serie stammt und funktioniert. Also eine nervige Retoure?

An einem bedauernswerten Windowsrechner die Treiber des Herstellers heruntergeladen und installiert.
StreamDeck-Software zeigt lustigerweise die richtige "Größe" des Geräts(MK2) und den mittleren Button in Blauer Farbe an.
Doch das StreamDeck selber.. bleibt dem Herstellerlogo treu.

Ein letzter Versuch bevor das Gerät an den Händler zurückgeht..das Anschlusskabel kontrollieren/tauschen?
AHA! Das MK2 hat einen abgewinkelten USB-C Stecker und dieser konnte noch einen halben Millimeter weiter eingesteckt werden..
Schon färbte sich der mittlere Button blau und ein Druck darauf öffnete den Browser mit der Herstellerseite.


Schon interessant:
Die Spannungsversorgung war schon verbunden darum erschien das Logo.
Die Datenleitungen sind absichtlich etwas kürzer verbaut damit beim Abziehen zuerst die Datenverbindung getrennt und danach die Stromversorgung gekappt wird.
So können keine Ströme sich den Weg über die Datenverbindungen suchen und diese beschädigen. Eigentlich genial.
Doofer Fehler :D


Noch interessanter:
Um das Kabelgewirr etwas zu lindern habe ich einen winzigen passiven Hub erstanden und aufgestellt.
Angeschlossen ist das Teil mit einem USB-C Gen2.1 Anschluss(10cm Kabel!!) direkt am PC.
Mit DER Länge würde es nur hinter dem Kasten herumbaumeln also habe ich es mit einer USB-C Verlängerung(1m) erweitert.
Beide StreamDecks funktionieren gleichzeitig daran.
Allerdings.. Bilder der XL sind nur auf der ERSTEN Page ok. Auf weiteren Pages sind die..kaputt. Ohne angeklemmte MK2 ist das wieder okay.
Beide gemeinsam an einem Hub ziehen wohl zu viel Spannung oder "Datenvolumen"??

Wird der Stecker an der Verlängerung um 180° verdreht eingesteckt werden beide StreamDecks(auch einzeln!) nicht mehr angesprochen und zeigen nur das doofe Logo -.-
DAS sieht die Spezifikation von USB-C aber anders vor.. eine WEITERE mögliche Fehlerquelle!!


Ursache des Problems(sporadische Funktion, meistens FEHLFunktion):
An eine USB-C Buchse(PC) wurde eine 1m lange USB-C Verlängerung angeschlossen. Diese versorgte einen USB-C Hub.
Auch mit einem NEUEN Kabel des selben Herstellers klappte die Verbindung nur MANCHMAL.
Den Hub direkt angeschlossen: Tadellose Funktion..
Ergo: Kabelverlängerungen kann man von außen nicht ansehen ob die für ihren Zweck taugen!

Beschreibung des fehlerhafen? Kabels:
Club3D USB Gen1 Type-C Extension Cable 5Gbps, 60W(20V/3A) 4k60Hz M/F 1m.

Fehlerursache: 5Gbps Kabel taugen NICHT, es MÜSSEN mind. 10Gbps Kabel sein(Verlängerungen)!!


Diese Seite wurde zuletzt am 18.02.2024 um 14:37 geändert.

(c) 2024 DHLF ☮🇺🇦