Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Stream Deck LED-/Icon-Feedback aus SB

Stream Deck → Feedback

Fortgeschritten

SB pusht Live-Werte ans Deck. Title-Text, Icon-Wechsel, Hintergrund-Farbe. Beide Wege gezeigt.

Steps
2
Cooldown
0s/User
Cooldown
0sglobal
Zugriff
Broadcaster

Pattern: SB hat eine Action die per Event (Sub, Mute-Toggle, HR-Update, etc.) feuert. Sub-Action Broadcast Custom WebSocket Event schickt den neuen Wert an alle verbundenen Clients. Companion oder das Elgato-Plugin empfangen das Event und updaten die Button-Anzeige.

Bei jedem neuen Sub aktualisiert SB einen Persisted Global und pusht den Wert ans Deck.

Trigger: Twitch > Channel > Subscription (alle Tiers, alle Sub-Typen).

Global Set. Sub-Count erhöhen

Core Globals Global (Set)

Inkrementiert die laufende Sub-Zahl für die aktuelle Stream-Session.

Global Name streamSubCount
Value $inc(streamSubCount,1)$
Persisted aktiv

Broadcast Custom WebSocket Event

Streamer.bot Broadcast Custom WebSocket Event

Pusht den aktuellen Wert an alle verbundenen Clients (Companion, Plugin, Browser-Overlay).

Event Name subCountChanged
Data (JSON) {"count": %streamSubCount%}
  1. 1 Global Set: streamSubCount = $inc(streamSubCount,1)$ (Persisted)
  2. 2 Broadcast Custom WS Event: subCountChanged { count: %streamSubCount% }
  1. Companion Web-UI öffnen → Variables Tab
  2. Streamer.bot-satellite-Connection zeigt nach jedem Event die letzte Payload unter Custom Variables
  3. Button anlegen
  4. Add Action → Set Title
  5. Title-Feld: Subs: $(streamerbot:custom_event_subCountChanged_count)

Companion ersetzt die $(...)-Expression bei jedem Event durch den neuen Wert. Bei Sub-#5 zeigt der Button Subs: 5. Reload des Buttons passiert automatisch.

  1. Im Button Feedback Tab
  2. Add Feedback → Streamer.bot satellite → Custom Variable Compare
  3. Felder:
FeldWert
VariablesubCountChanged.count
Comparison>=
Value10
Backgroundgrün (Hex #22c55e)

Sobald 10 Subs erreicht sind, wird der Button grün. Reaktiv ohne extra-Polling.

Das offizielle Plugin hat eine State Tile. Drag auf eine Taste, dann:

FeldWert
Event NamesubCountChanged
Title TemplateSubs: {{count}}

Plugin abonniert das Event automatisch und ersetzt {{count}} bei jedem Push.

Das Deck zeigt rotes Mic-Icon wenn stumm, grünes wenn an.

Trigger: OBS Studio > Input > Mute State Changed (Filter: Input = Mic Aux).

Broadcast Custom WebSocket Event

Streamer.bot Broadcast Custom WebSocket Event
Event Name micMuteChanged
Data (JSON) {"muted": %muted%}

In Companion einen Button anlegen mit zwei Image-States (mic-on.png / mic-off.png), Feedback micMuteChanged.muted == true → roter Hintergrund + mic-off.png.

Deck-TasteLive-WertQuelle
Subs: 12 streamSubCountSubscription-Trigger
HR: 142 heartRateHypeRate-Trigger
🎤 Mute OBS-Mute-StateOBS-Mute-Trigger
LIVE Stream-OnlineStream-Online/Offline-Trigger

Wenn der Wert nicht eventgetrieben ist, sondern „immer aktuell“ sein soll: eine Timed Action alle 5 s, die den Wert pusht.

Action [Sys] Deck Heartbeat
Trigger: Cron: alle 5 s
Sub-Actions:
1. Global Get: streamSubCount → localCount
2. Broadcast Custom WS Event: subCountChanged { count: %localCount% }

Push-Pattern ist sparsamer, Polling ist robuster bei Connection-Drops.

  • Companion-Variable nicht aktualisiert: meist falscher Event-Name oder JSON-Key-Mismatch. Im Companion-Log live nachschauen welches Event ankommt
  • JSON-Escape: wenn dein Wert ein " enthält, JSON manuell escapen oder Backslash-frei umschreiben
  • Plugin-Variable null: beim ersten Connect sind alle Custom-Variables null bis das erste Event reinkommt. Init-Push beim WS-Connect machen (siehe Heartbeat oben)
  • Title zu lang: Stream-Deck-Tasten zeigen max ~3 Zeilen mit ~5 Zeichen. Variablen-Werte vorher kürzen ($truncate(%streamSubCount%,4)$)
  • Mehrere Decks gleichzeitig: Broadcast geht an ALLE Clients gleichzeitig, also beide Decks zeigen den gleichen Wert. Zum Trennen pro Deck eigener Event-Name
  • Streamlabs-Donations anzeigen: Event Donation → Push letzten Donator-Name + Betrag aufs Deck
  • Action-Activity-Indicator: eigener Event actionStarted / actionFinished, Deck-Button blinkt während laufender Action
  • Heart-Rate-Zone als Hintergrundfarbe: wenn %heartRate% >= 170: Background rot; siehe HR-Zones
  • Cross-Stream-Sync: zwei Streamer können sich gegenseitig Events pushen wenn beide SB-WS-Server vernetzt sind