gitwtfhub

wtf is decky-ha-mqtt-plugin?

jjuuzzii/decky-ha-mqtt-plugin — explained in plain English

Analysis updated 2026-05-18

7PythonAudience · ops devopsComplexity · 3/5Setup · moderate

TL;DR

A Decky Loader plugin that links a Steam Deck or Steam Machine to Home Assistant over MQTT, letting the controller's buttons and power state control a TV or receiver without HDMI CEC.

Mindmap

mindmap
  root((repo))
    What it does
      Steam Deck to MQTT bridge
      TV power sync
      Controller button events
    Tech stack
      Python
      SteamOS
      MQTT
      Home Assistant
    Use cases
      No CEC TV control
      Remote suspend and wake
      System stats monitoring
    Audience
      Steam Deck owners
      Home Assistant users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Turn a Steam Deck's volume and guide buttons into remote controls for a TV or AV receiver.

REASON 2

Sync power state so a TV turns on and off automatically with a Steam Deck or Steam Machine.

REASON 3

Monitor a Steam device's CPU, GPU, temperature, and battery from Home Assistant dashboards.

REASON 4

Suspend, shut down, restart, or wake a Steam device remotely through MQTT and Home Assistant.

What's in the stack?

PythonSteamOSDecky LoaderMQTTHome Assistant

How it stacks up

jjuuzzii/decky-ha-mqtt-pluginalx-code/lingbot-video-1.3b-fp8andrewbergman/kuma-importer
Stars777
LanguagePythonPythonPython
Setup difficultymoderatemoderate
Complexity3/52/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Needs an MQTT broker, Decky Loader on SteamOS, and a polkit rule for power control.

Wtf does this do

decky-ha-mqtt-plugin is a Decky Loader plugin for SteamOS devices such as the Steam Deck, Steam Machine, or a DIY home theater PC. It connects the device to Home Assistant over MQTT, giving the Steam controller's volume buttons and guide button the ability to control a TV or AV receiver, and letting power state follow between the Steam device and the TV, without needing an HDMI CEC adapter or relying on a TV's own CEC support. The plugin publishes a range of system data over MQTT: CPU load, RAM and disk usage, CPU and GPU temperature, GPU load, network speed, IP address, uptime, and battery level on devices that have one, all on a configurable interval. Volume level and mute state are published instantly whenever they change. The controller's volume buttons can optionally replace the Game Mode volume slider, with every press published as an MQTT event. Presses of the guide or Steam button are also published as events without interfering with Steam's own handling of that button. Additional sensors report whether an external display is connected, which app or game is currently running, and whether the device is streaming through Steam Link or Remote Play. The plugin also checks GitHub for new releases and can suspend, shut down, restart, or wake the device remotely through MQTT, using Home Assistant's MQTT discovery so all sensors and controls appear automatically as one device. A ready-made Home Assistant blueprint ties these pieces into a full TV and receiver sync: turning the Steam device on switches the TV to the right HDMI input and turns it on, turning the TV off suspends the Steam device, and the volume and guide buttons control the TV directly. Setting it up only requires picking entities in the blueprint, such as the power sensor, wake button, and TV, with delays and individual behaviors adjustable in an advanced section. Requirements are SteamOS 3.x with Decky Loader, an MQTT broker such as the Mosquitto add-on for Home Assistant, and optionally the Home Assistant MQTT integration for auto-discovery. Installation can be done through an SSH install script that also configures the permissions needed for suspend, shutdown, and reboot, or manually through Game Mode by installing a downloaded zip file. The README notes the plugin was built with help from Claude Code and states it is not affiliated with Valve.

Yoink these prompts

Prompt 1
Help me install this Decky plugin on my Steam Deck using the SSH install script.
Prompt 2
Walk me through importing the steamos_tv_sync blueprint into Home Assistant.
Prompt 3
Explain how to set up the polkit rule needed for suspend, shutdown, and reboot.
Prompt 4
Help me configure Wake-on-LAN so the wake button in Home Assistant works.

Frequently asked questions

wtf is decky-ha-mqtt-plugin?

A Decky Loader plugin that links a Steam Deck or Steam Machine to Home Assistant over MQTT, letting the controller's buttons and power state control a TV or receiver without HDMI CEC.

What language is decky-ha-mqtt-plugin written in?

Mainly Python. The stack also includes Python, SteamOS, Decky Loader.

How hard is decky-ha-mqtt-plugin to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is decky-ha-mqtt-plugin for?

Mainly ops devops.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.