Zum Hauptinhalt springen

qBittorrent / Transmission Smart-Home-Integration, kostenlos und Open Source

qBittorrent / Transmission-Integration für Gladys Assistant

Verfolge und steuere qBittorrent, Transmission oder Deluge: Tempo, Downloads, Pause, Drosseln.

Verfolge und steuere die Torrent-Clients deines Heimservers von Gladys aus, in deinem lokalen Netzwerk: qBittorrent, Transmission und Deluge. Sieh die Download- und Upload-Geschwindigkeit und die laufenden Downloads, drossle alles, wenn ein Film auf dem Fernseher startet, pausiere alles, und lass dich benachrichtigen, wenn ein Download fertig ist.

Mit den echten Programmen getestet, aber noch nicht in einem echten Zuhause: Rückmeldungen willkommen. Diese Integration wurde gegen qBittorrent 4.6.3 und 5.2.4, Transmission 4.0.5 und Deluge 2.1 getestet, die daneben liefen, mit Downloads untereinander, aber noch nicht in einer echten Gladys-Installation mit deinem NAS, deinem Reverse-Proxy oder deinem Docker. Wenn etwas nicht wie beschrieben funktioniert, sag es bitte im Gladys-Forum oder in den Issues.

Die Integration löscht nie einen Torrent oder eine Datei. Die Befehle der Integration sind Pause, Fortsetzen und die alternativen Geschwindigkeitslimits, alle umkehrbar; das Hinzufügen von Magnet-Links ist aus, bis du es erlaubst.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Ein bis drei Torrent-Clients, die Gladys erreichen kann, beliebig gemischt:
    • qBittorrent 4.1 oder neuer mit eingeschalteter Weboberfläche (Extras → Optionen → Weboberfläche), oder qbittorrent-nox;
    • Transmission (2.80 oder neuer) mit eingeschaltetem Fernzugriff: der Daemon transmission-daemon, oder Einstellungen → Fernsteuerung in den Desktop-Versionen;
    • Deluge mit seiner Weboberfläche (deluge-web, Port 8112), mit seinem Daemon verbunden.
  • Benutzername und Passwort der Weboberfläche (Deluge: nur das Passwort, deluge, solange du es nicht geändert hast).

Bei Transmission muss die Adresse von Gladys erlaubt sein: Trage sie in rpc-whitelist in der settings.json ein, oder schalte die Whitelist aus (rpc-whitelist-enabled: false) und behalte ein Passwort. In Docker-Images (linuxserver.io…) erledigen das die Variablen USER, PASS und WHITELIST.

Einrichtung​

  1. Installiere die Integration aus dem Gladys-Katalog.
  2. Wähle unter Konfiguration für deinen ersten Client die Software, gib seine Adresse ein (zum Beispiel 192.168.1.10:8080), den Benutzernamen und das Passwort, und optional einen Namen. Ohne Port nimmt die Integration den Standard der Software: 8080 für qBittorrent, 9091 für Transmission, 8112 für Deluge. Zwei oder drei Clients? Fülle auch die Abschnitte Zweiter Client und Dritter Client aus: eine andere Software oder eine weitere Instanz derselben.
  3. Speichere und klicke auf Verbindung testen: Die Meldung unter der Schaltfläche sagt für jeden Client, ob er antwortet, seine Version und seine Torrents.
  4. Öffne den Tab Entdecken: ein Gerät pro Client. Klicke auf Hinzufügen, wähle einen Raum, speichere.

Die Adresse kann einen Pfad enthalten, wenn der Client hinter einem Reverse-Proxy läuft (https://nas.example.com/qbittorrent), oder aus dem Browser kopiert sein (http://192.168.1.10:9091/transmission/web/ geht für Transmission).

Optionen:

  • Selbstsignierte Zertifikate akzeptieren: für eine https://-Adresse, deren Zertifikat nicht von einer Zertifizierungsstelle signiert ist (häufig auf einem NAS).
  • Aktualisierungsintervall: wie oft die Clients gelesen werden, von 10 Sekunden bis 2 Minuten (standardmäßig 30 Sekunden). Es ist auch die Verzögerung der Auslöser.
  • Magnet-Links erlauben: erlaubt Szenen, einen Torrent hinzuzufügen (standardmäßig aus, siehe die Aktion Magnet-Link hinzufügen).
  • Sprache der Gerätetexte: Englisch, Französisch, Deutsch oder Spanisch, für die Namen der Funktionen (beim Hinzufügen eines Geräts vergeben) und die Liste der Downloads (standardmäßig Französisch).

Das Gerät jedes Clients​

FunktionWas es ist
Download-GeschwindigkeitGeschwindigkeit aller Downloads, in kB/s
Upload-GeschwindigkeitGeschwindigkeit aller Uploads (Seeding), in kB/s
Laufende TorrentsWeder fertige noch pausierte Torrents: ladend, wartend, blockiert, geprüft
Pausierte TorrentsNicht fertige, pausierte Torrents
Fertige TorrentsVollständig geladene Torrents, ob im Seeding oder nicht, pausiert oder nicht
Aktuelle DownloadsText: die ersten drei laufenden Downloads mit ihrem Prozentsatz
Freier SpeicherplatzFreier Platz im Download-Ordner, in GB
Alternative GeschwindigkeitslimitsSchalter: die alternativen Geschwindigkeitslimits des Clients (nicht bei Deluge)
Client verbunden1, solange der Client antwortet, sonst 0

Die drei Zähler ergeben zusammen die Gesamtzahl der Torrents. Ein Torrent, der nach Erreichen seines Verhältnisses pausiert wurde, zählt als fertig, nicht als pausiert.

Die alternativen Geschwindigkeitslimits sind die langsameren Limits, die du im Client selbst einstellst: in qBittorrent Optionen → Geschwindigkeit → Alternative Geschwindigkeitsbegrenzungen; in Transmission der Schildkrötenmodus (Einstellungen → Geschwindigkeit → Alternative Geschwindigkeitsbegrenzungen). Deluge hat diesen Modus nicht: Sein Gerät hat keinen Schalter.

In der Liste der Downloads stehen die, die gerade Daten empfangen, vorne, die schnellsten zuerst. Ein Prozentsatz wird abgerundet: 99 % bis zum Ende.

Dashboard​

Das Widget Torrents zeigt die Download- und Upload-Geschwindigkeit, die Zahl der laufenden Torrents, die laufenden Downloads mit Prozentsatz und Geschwindigkeit sowie die Zahl der pausierten und fertigen Torrents. Es summiert alle Clients oder zeigt den in seinen Einstellungen gewählten. Drei Tasten:

  • Alle pausieren: pausiert alle Torrents;
  • Alle fortsetzen: setzt alle Torrents fort;
  • Alternatives Tempo: schaltet die alternativen Geschwindigkeitslimits ein, oder aus, wenn sie an sind (ein Häkchen zeigt es). Fehlt, wenn nur Deluge angezeigt wird.

Das Widget funktioniert, sobald die Integration konfiguriert ist, schon vor dem Hinzufügen der Geräte.

Szenen​

Auslöser​

  • Download abgeschlossen: Ein Torrent ist fertig heruntergeladen. Ein Torrent, der mit schon vorhandenen Dateien hinzugefügt wurde (geprüft, dann vollständig), zählt nicht, ebenso wenig ein fertiger Torrent, der erneut geprüft wird. Filter: der Client und die Kategorie (qBittorrent) bzw. das Label (Transmission 4, Deluge mit dem Label-Plugin). Variablen: der Name des Torrents, der Name des Clients, die Kategorie und die Größe in GB.
  • Neuer Torrent hinzugefügt: Ein Torrent wurde dem Client hinzugefügt, von wem auch immer (du, Sonarr, Radarr, eine Browser-Erweiterung…). Ein Magnet-Link wird gemeldet, sobald sein Name bekannt ist. Gleiche Filter und Variablen.

Die Torrents, die beim Start der Integration da sind, werden nicht gemeldet: Ein Torrent, der hinzugefügt oder fertig wurde, während die Integration (oder Gladys) gestoppt war, wird nicht gemeldet. Antwortet ein Client nicht mehr, behält die Integration seine Torrents im Gedächtnis: Was inzwischen fertig wurde, wird gemeldet, sobald er wieder antwortet.

Aktionen​

  • Alle Torrents pausieren: auf einem Client oder auf allen.
  • Alle Torrents fortsetzen: auf einem Client oder auf allen.
  • Alternative Geschwindigkeitslimits: An oder Aus, auf einem Client oder auf allen, die sie haben (Deluge wird übersprungen). Die Ausgabe ist die Zahl der Clients, die angenommen haben.
  • Magnet-Link hinzufügen: fügt einen Torrent über seinen Link magnet:?xt=urn:btih:… hinzu, auf dem gewählten Client oder dem ersten der Konfiguration. Nur wenn Magnet-Links erlauben aktiviert ist: Sonst könnte jeder, der eine Szene bearbeiten kann, einen Download starten. Nur Magnet-Links werden angenommen, nie eine http-Adresse, die der Client abrufen würde. Die Ausgabe ist der Info-Hash.

Szenen-Ideen​

  • Ein Film startet: Wenn der Fernseher oder der Mediaplayer abspielt, starte Alternative Geschwindigkeitslimits → An; beim Stoppen Aus.
  • Videokonferenz: Von einem Kalendereintrag oder einer Taste aus Alle Torrents pausieren, dann eine Stunde später Alle Torrents fortsetzen.
  • Film bereit: Bei Download abgeschlossen mit der Kategorie filme die Nachricht „{{triggerEvent.data.name}} ist bereit“ senden.
  • Platte fast voll: Wenn Freier Speicherplatz unter 20 GB fällt, alles pausieren und eine Nachricht senden.
  • Client ausgefallen: Wenn Client verbunden 10 Minuten lang auf 0 steht, eine Nachricht senden.

Aktualisierung und Last​

Die Integration liest jeden Client mit ihrem eigenen Timer (standardmäßig alle 30 Sekunden), nicht über den Gladys-Planer. Eine Lesung ist leicht: qBittorrent schickt nur, was sich seit der vorigen Lesung geändert hat, Transmission beantwortet vier kleine Aufrufe mit nur den nötigen Feldern, Deluge einen Aufruf. Ein Client, der nicht mehr antwortet, wird 15 Sekunden später erneut gelesen. Ein Wert, der sich nicht ändert, wird trotzdem alle 6 Stunden an Gladys gesendet.

Die APIs sind lokal, ohne Kontingent. qBittorrent sperrt jedoch die Adresse von Gladys nach 5 fehlgeschlagenen Anmeldungen (standardmäßig eine Stunde): Nach einem abgelehnten Passwort wartet die Integration 5 Minuten, dann 15, dann eine Stunde, dann 6 Stunden, bevor sie es erneut versucht. Das Passwort in der Konfiguration zu korrigieren oder auf Verbindung testen zu klicken, versucht es sofort erneut.

Fehlerbehebung​

  • „antwortet nicht“: Prüfe Adresse und Port vom Gladys-Rechner aus (curl http://192.168.1.10:8080) und dass der Client im Netzwerk lauscht, nicht nur auf localhost.
  • „Benutzername oder Passwort abgelehnt“: Prüfe sie in der Weboberfläche des Clients. Bei Deluge ist es das Passwort der Weboberfläche, nicht das des Daemons.
  • „qBittorrent hat die Adresse von Gladys gesperrt“: zu viele fehlgeschlagene Anmeldungen. Warte das Ende der Sperre ab (Optionen → Weboberfläche → Client nach aufeinanderfolgenden Fehlversuchen sperren) oder starte qBittorrent neu, dann korrigiere das Passwort.
  • „nicht auf der RPC-Whitelist“ (Transmission): Trage die Adresse von Gladys in rpc-whitelist ein, siehe Was du brauchst.
  • „kein solcher Client unter dieser Adresse“: Die gewählte Software passt nicht zur Adresse, oder ein Reverse-Proxy stellt sie unter einem Pfad bereit, den du nicht eingegeben hast.
  • „nicht mit ihrem Daemon verbunden“ (Deluge): Öffne die Weboberfläche, den Verbindungsmanager, und verbinde sie mit ihrem Daemon; danach verbindet die Integration sie selbst mit dem ersten Daemon der Liste.
  • qBittorrent hinter einem Reverse-Proxy lehnt die Anmeldung ab: Schalte Host-Header-Validierung aktivieren aus oder trage den Namen dort ein (Optionen → Weboberfläche), oder erlaube die Adresse von Gladys unter Authentifizierung für Clients in erlaubten IP-Subnetzen umgehen und lass Benutzername und Passwort leer.
  • Der Tab Entdecken zeigt nichts: Kein Client ist konfiguriert, oder seine Adresse wurde nicht verstanden (das steht im Konfigurationsbildschirm).
  • Mehr Details: Setze die Umgebungsvariable LOG_LEVEL=debug am Container, um jede Lesung in den Protokollen der Integration zu sehen. Passwörter und Sitzungs-Cookies werden nie geschrieben.

Grenzen​

  • Höchstens drei Clients. Ein Gerät pro Client, nicht pro Torrent.
  • Kein Löschen von Torrents oder Dateien, mit Absicht.
  • Deluge: keine alternativen Geschwindigkeitslimits (Deluge selbst hat keine); für den Kategorie-Filter ist das Label-Plugin nötig.
  • Transmission: Die Kategorie ist das erste Label (Transmission 4.0 und neuer).
  • Die Geschwindigkeiten sind die des ganzen Clients, nicht eines Torrents.
  • Die Auslöser hängen vom Aktualisierungsintervall ab: Ein Torrent, der zwischen zwei Lesungen hinzugefügt und wieder entfernt wird, wird nicht gesehen.
  • Die Namen der Funktionen werden beim Hinzufügen des Geräts festgelegt: Eine spätere Änderung der Sprache benennt in Gladys nichts um.
  • Nicht verbunden mit den Projekten qBittorrent, Transmission oder Deluge.

Konfigurationseinstellungen​

Diese Einstellungen fragt qBittorrent / Transmission in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Deine Torrent-ClientssectionNeinqBittorrent (Weboberfläche an), Transmission (Fernzugriff an) oder Deluge (Weboberfläche, deluge-web). Bis zu drei Clients in deinem Netzwerk. Löscht nie einen Torrent oder eine Datei.
SoftwareselectNein
AdressestringJaIP-Adresse oder Name, mit :Port. Ohne Port der Standard: 8080, 9091 oder 8112. https:// für HTTPS.
BenutzernamestringNeinqBittorrent und Transmission. Leer, wenn der Client keinen verlangt. Deluge: leer lassen.
PasswortsecretNeinPasswort der Weboberfläche (Deluge: „deluge“, solange nicht geändert). Leer, wenn keins.
NamestringNeinName des Geräts in Gladys. Leer: die Software gefolgt von der Adresse.
Zweiter Client (optional)sectionNeinDieselben Felder, für einen weiteren Torrent-Client: andere Software oder andere Instanz.
SoftwareselectNein
AdressestringNeinIP-Adresse oder Name, mit :Port. Ohne Port der Standard: 8080, 9091 oder 8112. https:// für HTTPS.
BenutzernamestringNeinqBittorrent und Transmission. Leer, wenn der Client keinen verlangt. Deluge: leer lassen.
PasswortsecretNeinPasswort der Weboberfläche (Deluge: „deluge“, solange nicht geändert). Leer, wenn keins.
NamestringNeinName des Geräts in Gladys. Leer: die Software gefolgt von der Adresse.
Dritter Client (optional)sectionNeinDieselben Felder, für einen weiteren Torrent-Client: andere Software oder andere Instanz.
SoftwareselectNein
AdressestringNeinIP-Adresse oder Name, mit :Port. Ohne Port der Standard: 8080, 9091 oder 8112. https:// für HTTPS.
BenutzernamestringNeinqBittorrent und Transmission. Leer, wenn der Client keinen verlangt. Deluge: leer lassen.
PasswortsecretNeinPasswort der Weboberfläche (Deluge: „deluge“, solange nicht geändert). Leer, wenn keins.
NamestringNeinName des Geräts in Gladys. Leer: die Software gefolgt von der Adresse.
OptionensectionNein
Selbstsignierte Zertifikate akzeptierenbooleanNeinFür einen Client, der über HTTPS mit eigenem Zertifikat läuft (häufig auf einem NAS).
AktualisierungsintervallselectNeinWie oft die Clients gelesen werden. Auch die Verzögerung des Auslösers „Download abgeschlossen“.
Magnet-Links erlaubenbooleanNeinErlaubt Szenen, einen Torrent per Magnet-Link hinzuzufügen. Standardmäßig aus: Wer eine Szene bearbeiten kann, könnte sonst einen Download starten.
Sprache der GerätetexteselectNeinNamen der Funktionen (beim Hinzufügen des Geräts festgelegt) und Texte der Integration.

So installierst du qBittorrent / Transmission in Gladys​

  1. Öffne in Gladys Integrationen: qBittorrent / Transmission erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-torrent:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-torrent.

qBittorrent / Transmission benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

qBittorrent / Transmission ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂