The transmission integration allows you to monitor your downloads with Transmission from within Home Assistant and setup automation based on the information.


To use the monitoring, your transmission client needs to allow remote access. If you are running the graphical transmission client (transmission-gtk) go to Edit -> Preferences and choose the tab Remote. Check Allow remote access, enter your username and your password, and uncheck the network restriction as needed.

If everything is set up correctly, the details will show up in the frontend.


Set up the integration through Configuration -> Integrations -> Transmission. For legacy support old transmission configuration is imported and set up as new integration. Make sure to remove monitored_condiditions as they are now automatically added to Home Assistant

To enable this sensor, add the following lines to your configuration.yaml:


Configuration Variables

host stringRequired

This is the IP address of your Transmission daemon, e.g., or

port integer(Optional, default: 9091)

The port your Transmission daemon uses.

name string(Optional)

The name to use when displaying this Transmission instance in the frontend.

username string(Optional)

Your Transmission username, if you use authentication.

password string(Optional)

Your Transmission password, if you use authentication.

scan_interval integer(Optional)

How frequently to query for new data. Defaults to 120 seconds.

Integration Entities

The Transmission Integration will add the following sensors and switches.


  • transmission_current_status: The status of your Transmission daemon.
  • transmission_download_speed: The current download speed [MB/s].
  • transmission_upload_speed: The current upload speed [MB/s].
  • transmission_active_torrents: The current number of active torrents.
  • transmission_paused_torrents: The current number of paused torrents.
  • transmission_total_torrents: The total number of torrents present in the client.
  • transmission_started_torrents: The current number of started torrents (downloading).
  • transmission_completed_torrents: The current number of completed torrents (seeding)


  • transmission_switch: A switch to start/stop all torrents
  • transmission_turtle_mode: A switch to enable turtle mode.

Event Automation

The Transmission integration is continuously monitoring the status of torrents in the target client. Once a torrent is started or completed, an event is triggered on the Home Assistant Bus, which allows to implement any kind of automation.

Possible events are:

  • transmission_downloaded_torrent
  • transmission_started_torrent
  • transmission_removed_torrent

Inside of the event, there is the name of the torrent that is started or completed, as it is seen in the Transmission User Interface.

Example of configuration of an automation with completed torrents:

- alias: Completed Torrent
    platform: event
    event_type: transmission_downloaded_torrent
    service: notify.telegram_notifier
      title: "Torrent completed!"
      message: "{{}}"


Service add_torrent

Adds a new torrent to download. It can either be a URL (HTTP, HTTPS or FTP), magnet link or a local file (make sure that the path is white listed).

Service data attribute Optional Description
name yes Name of the configured instance (Default: “Transmission”)
torrent no Torrent to download

Service remove_torrent

Removes a torrent from the client.

Service data attribute Optional Description
name no Name of the configured instance (Default: “Transmission”)
id no ID of the torrent, can be found in the torrent_info attribute of the *_torrents sensors
delete_data yes Delete torrent data (Default: false)


Attribute torrent_info

All *_torrents sensors e.g. sensor.transmission_total_torrents or sensor.transmission_started_torrents have a state attribute torrent_info that contains information about the torrents that are currently in a corresponding state. You can see this information in Developer Tools -> States -> sensor.transmission_total_torrents -> Attributes, or by adding a Markdown Card to Lovelace.

content: >
  {% set payload = state_attr('sensor.transmission_total_torrents', 'torrent_info') %}

  {% for torrent in payload.items() %} {% set name = torrent[0] %} {% set data = torrent[1] %}

  {{ name|truncate(20) }} is {{ data.percent_done }}% complete, {{ data.eta }} remaining {% endfor %}
type: markdown