Integrating and controlling Transmission with Home Assistant
Disclosure: This post contains affiliate links. If you click through and make a purchase, I will earn a commission, at no additional cost to you. Read my full disclosure here.
Tapping into the potential of Home Assistant goes beyond managing tangible devices like lights, media players, and PCs. It also enables seamless control over software applications installed on your home server, such as Transmission, the renowned lightweight BitTorrent client.
Disclaimer: Home Assistant Guide does not support piracy
As the writer of this content, I would like to emphasize that I do not condone or encourage piracy in any shape or form. The information provided here is for educational purposes only. Engaging in piracy is not only unethical but also illegal in many jurisdictions, and it can have serious consequences. It is always advised to support the creators and distributors of content by using legal channels and respecting intellectual property rights.
How Home Assistant Guide uses Transmission
Transmission is a lightweight, open-source BitTorrent client that enables you to download and share files via the BitTorrent protocol. It is known for its minimalistic and user-friendly interface, low resource usage, and cross-platform compatibility, being available on Windows, macOS, Linux, and various Unix-based systems. Transmission supports features like selective file downloading, magnet links, encryption, and web-based remote control, making it a popular choice among torrent users who prioritize simplicity and efficiency.
I operate Transmission within a Docker container, sharing the same host as my Home Assistant Core container. It's constantly active, as there's an abundance of "Linux ISOs" to sift through. However, I don't want torrent downloads to impede my browsing or remote working experience when I'm at home. That's where today's spotlighted automation comes into play.
Preparing for Home Assistant and Transmission Integration
This guide's instructions are applicable to all Home Assistant installation methods, whether you're running the Home Assistant Operating System on a Raspberry Pi or Home Assistant Core in a Docker configuration. The only prerequisite is access to the Home Assistant Dashboard. Naturally, you'll also need a functioning Transmission setup. Based on your configuration, you may need to enable remote access to Transmission.
To optimize your home network's performance, configure the alternative speeds in your Transmission client, often referred to as “turtle mode” due to its turtle icon. The adjusted speeds should be low enough to keep Transmission's presence inconspicuous when browsing and downloading on your home network.
How to integrate Transmission with Home Assistant
The Transmission integration is easily set up in Home Assistant. It is all done using the graphical web interface and no YAML code is involved. All you require is the host (i.e., Transmission's IP address), the username and password (if set up), and the correct port, which is by default 9091. Navigate to your integrations overview, and search for Transmission in the list of available integrations.
You can also use the direct link provided by Home Assistant to jump straight to the Transmission setup page. Once you've entered the required information, you'll see a list of sensors and switches at your disposal.
What sensors does the Transmission integration with Home Assistant provide?
The Transmission integration with Home Assistant offers several useful sensors, including:
A sensor reflecting the Transmission daemon's status, indicating whether you're only seeding or also downloading.
Sensors showing your current download and upload speed, helping you monitor your torrent bandwidth usage.
Five additional sensors displaying the number of active, paused, started, completed, and total torrents.
What switches does the Transmission integration with Home Assistant provide?
The integration provides two handy switches:
A switch to start/stop all torrents (switch.transmission_switch)
A switch to enable turtle mode (transmission_turtle_mode)
The turtle mode switch is particularly useful for Home Assistant automations. You can throttle Transmission when using the same network and unleash its full power when your smart home is empty.
What Events does the Transmission integration with Home Assistant provide?
The Transmission integration with Home Assistant also triggers several events, which can be used in various automations, such as notifications:
transmission_downloaded_torrent
transmission_started_torrent
transmission_removed_torrent
What Services does the Transmission integration with Home Assistant provide?
To top it off, the Transmission integration with Home Assistant provides four services, allowing you to add, remove, start, and stop torrents directly from the Home Assistant Dashboard. While their usefulness depends on your individual needs, dedicated applications like Sonarr and Radarr can further automate your torrenting experience.
Creating the Transmission turtle mode automation in Home Assistant
The following Transmission automation was created using trigger IDs. It enables much simpler and also shorter automations. In this instance, two triggers were created, one fires when I am at home, the other fires when I leave. I Each trigger is assigned a suitable name to be used later on in the actions.
To employ Trigger IDs in this automation, opt for the choose action type. Start by creating an option for disabling turtle mode (allowing Transmission to download at full speed). Select the triggered by condition time and pick the relevant trigger ID. For actions, pick the switch: turn off service and designate the Transmission Turtle Mode entity.
Creating the Transmission Turtle Mode automation in Node-RED
Node-RED is an open-source, flow-based programming tool that enables you to create and deploy automations by connecting nodes together in a visual interface. It simplifies the process of wiring together hardware devices, APIs, and online services. Node-RED is particularly popular for use in Internet of Things (IoT) projects, as it supports a wide range of inputs and outputs, and can run on various platforms like Raspberry Pi, Docker, and cloud-based servers.
Three basic Node-RED flows are utilized in this example. The first two activate when either you or your partner leave home. Next, the system checks if the other person remains at home. If both are away, Transmission downloads at full speed; otherwise, no action is taken. The third flow is straightforward: enabling turtle mode as soon as someone enters the home.
Further ideas for Transmission automations in Home Assistant
Although the initial setup is elementary, numerous ways exist to enhance these examples. Consider the following suggestions:
Deactivate turtle mode during periods when everyone is asleep.
Turn on turtle mode if someone uses your Plex server, even when you are away from home.
Develop a kill-switch for moments that require maximum bandwidth (either physical or within the Home Assistant UI)
Transmission sensors and switches in the Home Assistant UI
After setting up the Transmission integration in Home Assistant, why not create visually appealing graphs for your uploads and downloads? For example, the Lovelace Mini Graph Card displays data beautifully. Additionally, a substantial physical button for turtle mode can be established using a Button Card.