Intégration domotique pyLoad, gratuite et open source

Suivez et pilotez pyLoad : vitesse, file, place libre, pause, fichiers en échec, liens.
Suivez et pilotez pyLoad depuis Gladys : le gestionnaire de téléchargements libre pour les liens directs et les hébergeurs de fichiers, souvent installé sur un NAS ou un serveur maison (Docker, Unraid, Synology…). L'intégration parle à l'API locale de pyLoad : la vitesse, la file d'attente et la place libre s'affichent sur le tableau de bord, une scène peut mettre les téléchargements en pause pendant une visio, et Gladys peut vous prévenir quand un téléchargement est terminé, quand un fichier échoue ou quand la file est vide.
Testée sur de vrais pyLoad 0.5.0b3.dev96 et dev101, pas encore dans un vrai Gladys : vos retours sont les bienvenus sur GitHub.
Prérequis
- Gladys 5.1.0 ou plus récent.
- pyLoad 0.5 (le paquet
pyload-ng, ou l'image Dockerlinuxserver/pyload-ng), joignable depuis le serveur Gladys (même réseau). L'ancien pyLoad 0.4 n'est pas pris en charge. - pyLoad 0.5.0b3.dev101 ou plus récent (2025) : une clé d'API. Créez-la dans pyLoad :
Settings → Users, le menu de votre utilisateur, Manage API Keys. Elle commence par
pl_. - pyLoad 0.5 plus ancien (avant dev101) : le nom d'utilisateur et le mot de passe de
l'interface web (
pyload/pyloadtant que vous ne les avez pas changés). - L'utilisateur a besoin des droits pyLoad List (lire la file), Status (pause, place libre) et, pour les actions de scène, Modify (relancer les fichiers en échec) et Add (ajouter des liens). Un administrateur les a tous.
Configuration
Jusqu'à deux serveurs, chacun avec :
- Adresse : l'adresse IP ou le nom, avec le port :
192.168.1.10:8000. Sans port, 8000 est ajouté. Écrivezhttps://pour le HTTPS, et le chemin si pyLoad est derrière un proxy inverse (https://nas.example.org/pyload). L'adresse copiée depuis le navigateur marche aussi. - Clé d'API, ou Nom d'utilisateur et Mot de passe pour les versions plus anciennes.
- Nom : le nom de l'appareil dans Gladys (vide : pyLoad suivi de l'adresse).
Options :
- Accepter les certificats auto-signés : pour une adresse
https://avec son propre certificat. À cocher pour vos propres serveurs seulement. - Intervalle de rafraîchissement : la fréquence de lecture de pyLoad, 30 secondes par défaut. C'est aussi le délai des déclencheurs.
- Autoriser l'ajout de liens : permet aux scènes d'ajouter des liens à télécharger (désactivé par défaut : quiconque peut modifier une scène pourrait lancer un téléchargement).
- Langue des textes des appareils : les noms donnés aux fonctionnalités à l'ajout d'un appareil, et les textes d'état (français par défaut).
Le bouton Tester la connexion lit chaque serveur et dit ce qu'il a trouvé : version, état, file d'attente, fichiers en échec.
Appareils
Un appareil par serveur, dans l'onglet Découverte. Ses fonctionnalités :
| Fonctionnalité | Ce qu'elle montre |
|---|---|
| Téléchargements en pause | interrupteur : allumé, pyLoad est en pause jusqu'à ce que vous l'éteigniez ; éteint, il reprend. |
| Reconnexion automatique | interrupteur : la reconnexion de pyLoad (nouvelle adresse IP par la box) activée ou non. |
| Vitesse de téléchargement | en Mo/s. |
| Téléchargements actifs | les fichiers en cours de téléchargement. |
| Fichiers en file d'attente | les fichiers de la file non terminés, échecs compris (la « queue » de pyLoad). |
| Fichiers au total | tous les fichiers de pyLoad, file et collecteur (le « total » de pyLoad). |
| Fichiers en échec | les fichiers qui ont échoué, ou dont le lien est hors ligne. |
| Espace disque libre | en Go, du dossier de téléchargement. |
| État | Téléchargement, En pause, En attente (fichiers en file, aucun en cours), Inactif, Injoignable. |
| Dernier téléchargement | le nom du dernier paquet terminé. |
Mettre pyLoad en pause ne lance plus de nouveau téléchargement : les fichiers déjà en cours se terminent (c'est la pause de pyLoad lui-même). Tailles et vitesses en unités binaires, comme pyLoad les affiche (1 Mo = 1024 × 1024 octets). Seuls les changements sont envoyés à Gladys, et toutes les valeurs à nouveau au bout de 6 heures.
Widget
Le widget Téléchargements pyLoad affiche la vitesse, la file d'attente et le temps restant de tous les serveurs (ou de celui choisi dans ses réglages), et une ligne par serveur : son état (avec la fin d'une pause minutée), les fichiers en cours avec leur pourcentage, les fichiers en échec, la place libre et le dernier téléchargement. Quatre boutons :
- Pause : met pyLoad en pause jusqu'à la reprise ;
- Pause 30 min : le met en pause pour 30 minutes ;
- Reprendre : le relance ;
- Relancer les échecs : retente les fichiers en échec.
La coche montre l'état actuel : sur Pause quand tout est en pause, sur Reprendre quand tout tourne.
Déclencheurs de scène
- Téléchargement terminé : tous les fichiers d'un paquet sont téléchargés. Filtre : le serveur. Variables : nom du paquet, nombre de fichiers, taille en Mo, nom du serveur.
- Fichier en échec : un fichier a échoué, ou son lien est hors ligne (lien mort, 404). Filtre : le serveur. Variables : nom du fichier, nom du paquet, la raison donnée par pyLoad, nom du serveur.
- File d'attente vide : plus rien à télécharger, le dernier fichier de la file s'est terminé ou a échoué. Filtre : le serveur. Variable : nom du serveur.
Chaque paquet et chaque fichier ne déclenche qu'une fois (un fichier relancé qui échoue à nouveau redéclenche). Ce qui s'est passé pendant que l'intégration était arrêtée (une mise à jour, un redémarrage) déclenche à son retour.
Pas de déclencheur « disque presque plein » : la fonctionnalité Espace disque libre est une valeur, et le déclencheur d'appareil de Gladys la compare déjà à un seuil (« Espace disque libre inférieur à 20 Go »).
Actions de scène
- Mettre les téléchargements en pause : un serveur ou tous, pour un nombre de minutes (0 : jusqu'à la reprise). L'intégration relance pyLoad à la fin (pyLoad n'a pas de pause minutée). Sorties : nombre de serveurs mis en pause, durée.
- Reprendre les téléchargements : un serveur ou tous.
- Relancer les fichiers en échec : retente les fichiers en échec, sur un serveur ou sur tous.
- Ajouter des liens à télécharger : des liens http(s) ou ftp, séparés par des espaces (50 au plus), en un paquet, sur le serveur choisi (vide : le premier). Le nom du paquet est facultatif (vide : le nom du premier fichier). Seulement si Autoriser l'ajout de liens est coché. Sortie : le numéro du paquet.
L'intégration ne supprime jamais de fichier ni de paquet, et ne redémarre jamais pyLoad.
Exemples de scènes
- Visio : quand l'événement « Réunion » de l'agenda commence, Mettre les téléchargements en pause pour 60 minutes.
- Nuit : à 1 h, Reprendre les téléchargements ; à 8 h, Mettre les téléchargements en pause jusqu'à la reprise.
- Notification : sur Téléchargement terminé, envoyer « {{triggerEvent.data.name}} est téléchargé » sur votre téléphone.
- Problème : sur Fichier en échec, envoyer le nom du fichier et la raison ; puis Relancer les fichiers en échec une heure plus tard.
- Énergie : sur File d'attente vide, couper la prise du NAS quelques minutes après.
Dépannage
- « ne répond pas » : vérifiez l'adresse et le port (8000), et que le serveur Gladys peut joindre pyLoad (pare-feu, réseau Docker).
- « connexion refusée » : pyLoad 0.5.0b3.dev101 et plus récents n'acceptent qu'une clé d'API ; les versions plus anciennes un nom d'utilisateur et un mot de passe. Corrigez, puis enregistrez. L'intégration ne réessaie pas d'elle-même : chaque connexion refusée écrit une erreur dans le journal de pyLoad.
- « il manque un droit à l'utilisateur pyLoad » : donnez à l'utilisateur les droits listés dans les prérequis.
- « pas de pyLoad 0.5 à cette adresse » : mauvais port, ou un pyLoad 0.4.
- « certificat refusé » : cochez « Accepter les certificats auto-signés », ou passez en
http://. - « trop de requêtes » : pyLoad répond à 100 appels d'API par minute et par adresse au plus ; un rafraîchissement en coûte 3 ou 4. Choisissez un intervalle plus long si d'autres outils lisent aussi pyLoad.
- Un lien ajouté par une scène qui échoue aussitôt avec « Refusing to download from Server-Side host » : pyLoad refuse les adresses de votre propre réseau (une protection de pyLoad).
- Plus de détails : les logs de l'intégration, avec
LOG_LEVEL=debugpour chaque lecture.
Limites
- Chaque rafraîchissement lit toute la file de pyLoad (chaque fichier) : toutes les 30 secondes par défaut.
- La pause de pyLoad laisse se terminer les fichiers déjà en cours.
- L'interrupteur Reconnexion automatique montre l'option de pyLoad dans sa plage horaire : en dehors de la plage réglée dans pyLoad, il apparaît éteint.
- Une pause minutée repose sur l'intégration : si elle est arrêtée à la fin de la pause, pyLoad reprend dès son redémarrage.
- Sans lien avec l'équipe de pyLoad.
Paramètres de configuration
Voici les paramètres demandés par pyLoad dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Votre pyLoad | section | Non | pyLoad (pyload-ng 0.5) sur votre réseau : une clé d'API, ou un nom d'utilisateur et un mot de passe pour les versions antérieures à 0.5.0b3.dev101. Jusqu'à deux serveurs. Ne supprime jamais de fichier. |
| Adresse | string | Oui | Adresse IP ou nom, avec :port (8000 par défaut). https:// pour le HTTPS. |
| Clé d'API | secret | Non | pyLoad 0.5.0b3.dev101 ou plus récent : Settings, Users, Manage API Keys (pl_…). |
| Nom d'utilisateur | string | Non | pyLoad plus ancien (avant dev101), sans clé d'API : l'identifiant de l'interface web. |
| Mot de passe | secret | Non | Avec le nom d'utilisateur seulement. |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : pyLoad suivi de l'adresse. |
| Deuxième serveur (facultatif) | section | Non | Les mêmes champs, pour un autre pyLoad. |
| Adresse | string | Non | Adresse IP ou nom, avec :port (8000 par défaut). https:// pour le HTTPS. |
| Clé d'API | secret | Non | pyLoad 0.5.0b3.dev101 ou plus récent : Settings, Users, Manage API Keys (pl_…). |
| Nom d'utilisateur | string | Non | pyLoad plus ancien (avant dev101), sans clé d'API : l'identifiant de l'interface web. |
| Mot de passe | secret | Non | Avec le nom d'utilisateur seulement. |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : pyLoad suivi de l'adresse. |
| Options | section | Non | |
| Accepter les certificats auto-signés | boolean | Non | Pour un pyLoad servi en HTTPS avec son propre certificat (fréquent sur un NAS). |
| Intervalle de rafraîchissement | select | Non | Fréquence de lecture de pyLoad : c'est aussi le délai des déclencheurs. |
| Autoriser l'ajout de liens | boolean | Non | Permet aux scènes d'ajouter des liens à télécharger. Désactivé par défaut : quiconque peut modifier une scène pourrait lancer un téléchargement. |
| Langue des noms de fonctionnalités | select | Non | Noms donnés aux fonctionnalités à l'ajout d'un appareil, et textes d'état. |
Comment installer pyLoad dans Gladys
- Dans Gladys, ouvrez Intégrations : pyLoad apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-pyload:1.0.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-pyload.
pyLoad nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
pyLoad est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation