aria2 Smart-Home-Integration, kostenlos und Open Source

Verfolge und steuere aria2-Downloads: Tempo, Warteschlange, Fertige, Fehler, Pause, Links.
Verfolge und steuere aria2, das schlanke Download-Werkzeug (HTTP, FTP, SFTP, BitTorrent, Metalink), aus Gladys, in deinem lokalen Netzwerk. Sieh die Download- und Upload-Geschwindigkeit und die laufenden Downloads, pausiere alles oder drossle es, wenn ein Film im Fernsehen startet, füge aus einer Szene einen Link hinzu, und lass dich benachrichtigen, wenn ein Download fertig ist oder fehlschlägt.
Mit einem echten aria2 getestet, noch nicht in einem echten Zuhause: Rückmeldungen willkommen. Diese Integration wurde gegen aria2 1.37.0 getestet, mit echten Downloads (fertig, fehlgeschlagen, pausiert), aber noch nicht in einer echten Gladys-Installation mit deinem NAS, deinem Reverse Proxy oder deiner Oberfläche (AriaNg, Motrix…). Wenn etwas nicht wie beschrieben funktioniert, sag es im Gladys-Forum oder in den Issues.
Die Integration entfernt nie einen Download oder eine Datei. Die Befehle sind Pause, Fortsetzen, das Download-Limit und das Hinzufügen eines Links.
Was du brauchst
- Gladys Assistant 5.1.0 oder neuer.
- aria2 1.18 oder neuer, mit eingeschalteter RPC-Schnittstelle gestartet und
von Gladys erreichbar:
aria2c --enable-rpc --rpc-listen-all --rpc-secret=\<ein Secret>, oder dieselben Optionen inaria2.conf(enable-rpc=true,rpc-listen-all=true,rpc-secret=…). Die Docker-Images (p3terx/aria2-pro…) und NAS-Pakete machen das mit einer VariableRPC_SECREToder einer Einstellung. - Das RPC-Secret (
--rpc-secret), das du in AriaNg als geheimes Token eingibst. aria2 läuft auch ohne, aber dann könnte jeder in deinem Netzwerk es steuern.
--rpc-listen-all ist wichtig: ohne antwortet aria2 nur auf localhost, und
Gladys läuft in einem anderen Container.
Einrichtung
- Installiere die Integration aus dem Gladys-Katalog.
- Gib unter Konfiguration die RPC-Adresse von aria2 ein (zum Beispiel
192.168.1.10:6800; Port 6800, wenn keiner angegeben ist) und das RPC-Secret, optional einen Namen. Die volle URL geht auch, so wie AriaNg sie zeigt:ws://192.168.1.10:6800/jsonrpc, oderhttps://nas.example.com/aria2/jsonrpchinter einem Reverse Proxy. - Speichere und klicke auf Verbindung testen: Die Meldung unter dem Knopf sagt, ob aria2 antwortet, seine Version, seine Downloads und ob die Sofortbenachrichtigungen funktionieren.
- Öffne den Tab Erkennung: ein Gerät, aria2. Klicke auf Hinzufügen, wähle einen Raum, speichere.
Optionen:
- Limit für „Drosseln“ (kB/s): das Download-Tempo aller Downloads zusammen, solange Drosseln an ist (standardmäßig 1000 kB/s, also 8 Mbit/s).
- Aktualisierungsintervall: wie oft aria2 gelesen wird, von 10 Sekunden bis 2 Minuten (standardmäßig 30 Sekunden). Die Szenen-Auslöser warten nicht darauf: aria2 benachrichtigt die Integration sofort.
- Selbstsignierte Zertifikate akzeptieren: für ein aria2, das über HTTPS
(
--rpc-secure) mit eigenem Zertifikat läuft. - Sprache der Gerätetexte: Englisch, Französisch, Deutsch oder Spanisch, für die Namen der Funktionen (beim Hinzufügen des Geräts vergeben) und die Liste der Downloads (standardmäßig Französisch).
Das aria2-Gerät
| Funktion | Was es ist |
|---|---|
| Download-Geschwindigkeit | Tempo aller Downloads, in kB/s |
| Upload-Geschwindigkeit | Tempo aller Uploads (teilende Torrents), in kB/s |
| Aktive Downloads | Downloads, die Daten empfangen |
| Wartende Downloads | Downloads in der Warteschlange, wartend auf einen freien Platz oder pausiert |
| Fertige Downloads | Seit dem Start von aria2 beendete Downloads (teilender Torrent inklusive) |
| Fehlgeschlagene Downloads | Seit dem Start von aria2 durch einen Fehler gestoppte Downloads |
| Aktuelle Downloads | Text: die ersten drei aktiven Downloads mit ihrem Prozentsatz |
| Alle pausieren | Schalter: an pausiert alle Downloads, aus setzt sie fort |
| Drosseln | Schalter: an setzt das Limit der Konfiguration, aus entfernt es |
| Download-Limit | Das globale Download-Limit von aria2, in kB/s (0: keins) |
| aria2 verbunden | 1, solange aria2 antwortet, sonst 0 |
Fertige Downloads und Fehlgeschlagene Downloads zählen, woran aria2 sich
erinnert: die Ergebnisse der Sitzung (höchstens 1000,
--max-download-result), bis aria2 neu startet oder sie in AriaNg gelöscht
werden. Die Metadaten eines Magnet-Links und die .torrent-Datei eines
Downloads zählen nicht: nur der eigentliche Download.
Alle pausieren ist an, wenn noch etwas herunterzuladen ist und alles davon pausiert ist. Ein Link, der hinzugefügt wird, während alles pausiert ist, startet sofort: aria2 pausiert, was existiert, nicht was danach kommt.
Drosseln ist an, sobald ein globales Download-Limit gesetzt ist, egal von wem (der Schalter, das Widget, die Aktion Download-Limit festlegen, AriaNg).
Dashboard
Das Widget aria2-Downloads zeigt die Download- und Upload-Geschwindigkeit, die Zahl der aktiven Downloads, die laufenden Downloads mit Prozentsatz und Tempo und die Zahl der wartenden, fertigen und fehlgeschlagenen. Drei Knöpfe:
- Alle pausieren: pausiert alle Downloads;
- Alle fortsetzen: setzt alle Downloads fort;
- Drosseln: setzt das Limit der Konfiguration oder entfernt das Limit, wenn eins gesetzt ist (ein Häkchen zeigt es).
Das Widget funktioniert, sobald die Integration konfiguriert ist, schon bevor das Gerät hinzugefügt wurde.
Szenen
Auslöser
- Download abgeschlossen: ein Download ist fertig. Ein Torrent zählt, sobald er vollständig ist, während er weiter teilt, einmal. Variablen: der Dateiname, die Größe in GB und der Ordner.
- Download fehlgeschlagen: aria2 hat einen Download wegen eines Fehlers gestoppt (toter Link, Server lehnt ab, Platte voll…). Variablen: der Dateiname, die Fehlermeldung von aria2 und ihr Fehlercode (3: Ressource nicht gefunden, 9: zu wenig Speicherplatz…).
- Nichts mehr herunterzuladen: der letzte aktive oder wartende Download ist beendet (fertig, fehlgeschlagen oder entfernt). Pausierte Downloads stehen noch aus: alles zu pausieren löst ihn nicht aus. Variablen: die Zahl der fertigen und fehlgeschlagenen Downloads der Sitzung.
Die beim Start der Integration vorhandenen Downloads werden nicht gemeldet. aria2 benachrichtigt die Integration über seinen WebSocket (gleicher Port wie der RPC): die Auslöser kommen in weniger als einer Sekunde. Ohne WebSocket (ein Reverse Proxy, der ihn nicht durchlässt) kommen sie beim nächsten Lesen.
Aktionen
- Download-Link hinzufügen: gibt aria2 einen Link:
http,https,ftp,sftp, einenmagnet:-Link oder die Adresse einer.torrent- oder.metalink-Datei (aria2 lädt dann herunter, was sie beschreibt). Der Ordner ist optional: ein absoluter Pfad auf dem aria2-Server (/downloads/filme); leer, der Standardordner von aria2. Die Ausgabe ist die Kennung (GID) des neuen Downloads. - Alle Downloads pausieren: pausiert die aktiven und wartenden Downloads.
- Alle Downloads fortsetzen: setzt die pausierten Downloads fort.
- Download-Limit festlegen: das globale Limit von aria2 für alle Downloads zusammen, in kB/s, bis zur nächsten Änderung; 0 entfernt es.
Szenen-Ideen
- Ein Film startet: Wenn der Fernseher oder der Mediaplayer abspielt, schalte Drosseln an (Aktion „Gerät steuern“ auf dem Schalter); wenn er stoppt, aus.
- Videoanruf: Aus einem Kalendertermin oder einem Knopf Alle Downloads pausieren, eine Stunde später Alle Downloads fortsetzen.
- Downloads in der Nacht: Um 1 Uhr Download-Limit festlegen auf 0, um 8 Uhr auf 2000.
- Film bereit: Bei Download abgeschlossen eine Nachricht senden „{{triggerEvent.data.name}} ist bereit ({{triggerEvent.data.size_gb}} GB)“.
- Toter Link: Bei Download fehlgeschlagen „{{triggerEvent.data.name}}: {{triggerEvent.data.error}}“ senden.
- Nichts mehr: Bei Nichts mehr herunterzuladen den NAS-Lüfter ausschalten oder den Rechner schlafen lassen.
Aktualisierung und Last
Die Integration liest aria2 mit ihrem eigenen Timer (standardmäßig alle 30
Sekunden), nicht über den Planer von Gladys, und direkt nach jeder
Benachrichtigung von aria2 (einmal pro Schwall). Ein Lesen ist eine einzige
Anfrage (system.multicall) mit nur den genutzten Feldern, für höchstens 1000
wartende und 1000 beendete Downloads. Antwortet aria2 nicht mehr, wird es 15
Sekunden später erneut gelesen. Ein unveränderter Wert wird trotzdem alle 6
Stunden an Gladys gesendet. Der WebSocket verbindet sich selbst neu, nach 5
Sekunden, dann bis zu 5 Minuten.
Die API ist lokal, ohne Kontingent.
Fehlerbehebung
- „aria2 antwortet nicht“: Prüfe Adresse und Port vom Gladys-Rechner aus
(
curl http://192.168.1.10:6800/jsonrpcmuss eine Antwort bekommen), ob aria2 mit--enable-rpcund--rpc-listen-allläuft und ob der Port veröffentlicht ist, wenn aria2 in Docker läuft. - „Secret abgelehnt“: Das RPC-Secret weicht von
--rpc-secretab. Ohne Secret auf der aria2-Seite lass das Feld leer. - „kein aria2-RPC unter dieser Adresse“: Etwas antwortet, aber nicht aria2: oft die Webseite von AriaNg (Port 6880) statt des RPC (Port 6800), oder ein fehlender Pfad hinter einem Reverse Proxy.
- „Zertifikat abgelehnt“: Aktiviere Selbstsignierte Zertifikate akzeptieren.
- „keine Sofortbenachrichtigungen“ im Testbericht: Der WebSocket wird abgelehnt, oft von einem Reverse Proxy ohne WebSocket-Unterstützung, oder ein selbstsigniertes Zertifikat (das der WebSocket nicht akzeptieren kann). Alles funktioniert, im Aktualisierungsintervall.
- „Befehl von aria2 abgelehnt“: aria2 hat den Link (unbekanntes Schema, ungültige Adresse) oder den Ordner nicht angenommen. Der Grund steht in den Protokollen der Integration.
- Mehr Details: Setze die Umgebungsvariable
LOG_LEVEL=debugam Container, um jedes Lesen und jede Benachrichtigung in den Protokollen zu sehen. Das Secret und die Links werden nie geschrieben (nur der Host eines Links).
Grenzen
- Ein einziger aria2-Server. Ein Gerät, nicht eins pro Download.
- Kein Entfernen von Downloads oder Dateien, mit Absicht.
- Die Geschwindigkeiten und das Limit gelten für das ganze aria2, nicht für einen Download.
- Die Zahl der fertigen und fehlgeschlagenen Downloads gilt für die Sitzung von aria2 und beginnt bei einem Neustart von aria2 wieder bei null.
- Ein Download, der zwischen zwei Lesevorgängen bei getrenntem WebSocket hinzugefügt und wieder entfernt wird, wird nicht gesehen.
- Die Namen der Funktionen werden beim Hinzufügen des Geräts festgelegt: Eine spätere Sprachänderung benennt in Gladys nichts um.
- Nicht mit dem aria2-Projekt verbunden.
Konfigurationseinstellungen
Diese Einstellungen fragt aria2 in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein aria2-Server | section | Nein | aria2, gestartet mit --enable-rpc und --rpc-listen-all (Port 6800), in deinem Netzwerk. AriaNg, Motrix oder ein NAS-Paket: derselbe RPC. Löscht nie einen Download oder eine Datei. |
| RPC-Adresse | string | Ja | IP-Adresse oder Name, mit :Port (sonst 6800). Die volle URL geht auch: http(s):// oder ws(s)://…/jsonrpc. |
| RPC-Secret | secret | Nein | Der Wert von --rpc-secret (das „geheime Token“ von AriaNg). Leer, wenn aria2 keins hat. |
| Name | string | Nein | Name des Geräts in Gladys. Leer: aria2 gefolgt von der Adresse. |
| Optionen | section | Nein | |
| Limit für „Drosseln“ (kB/s) | number | Nein | Download-Tempo aller Downloads zusammen, solange „Drosseln“ an ist. 1000 kB/s = 8 Mbit/s. |
| Aktualisierungsintervall | select | Nein | Wie oft aria2 gelesen wird. Die Szenen-Auslöser kommen sofort: aria2 benachrichtigt Gladys. |
| Selbstsignierte Zertifikate akzeptieren | boolean | Nein | Für ein aria2, das über HTTPS (--rpc-secure) mit eigenem Zertifikat läuft. |
| Sprache der Gerätetexte | select | Nein | Namen der Funktionen (beim Hinzufügen des Geräts festgelegt) und Texte der Integration. |
So installierst du aria2 in Gladys
- Öffne in Gladys Integrationen: aria2 erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-aria2:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-aria2.
aria2 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
aria2 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.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation