🎯 Objectif
Sur les NAS Synology, l’interface DSM permet de choisir le mode de ventilation (Silencieux / Frais / Plein régime).
Le problème : ce réglage n’est pas scriptable officiellement, ce qui empêche toute automatisation (cron, plage horaire, charge serveur, etc.).
Dans cet article, nous allons voir comment forcer le mode “Plein régime” et revenir en mode normal, sans passer par l’UI DSM, et sans redémarrage, en reproduisant exactement l’appel interne utilisé par DSM.
❌ Pourquoi les méthodes classiques ne fonctionnent pas
1️⃣ Modifier scemd.xml ne suffit pas
Le démon scemd lit bien ses règles depuis scemd.xml, mais :
- il n’applique pas dynamiquement un changement de mode
- redémarrer
scemdne force pas un basculement immédiat - DSM garde un état interne du mode de ventilation
👉 Résultat : même avec des seuils ultra-agressifs, les ventilateurs ne passent pas à fond.
2️⃣ L’API existe… mais est refusée
Il existe une API interne :
SYNO.Core.Hardware.FanSpeed
Un appel direct du type :
api=SYNO.Core.Hardware.FanSpeed
method=set
dual_fan_speed=fullfan
renvoie selon les cas :
error code 101error code 102error code 3712- ou un faux
success:truesans effet réel
👉 Conclusion
L’API est bien présente, mais DSM refuse les appels directs hors contexte UI.
✅ La seule méthode fonctionnelle
La clé est là :
DSM ne change jamais le mode ventilation via un appel simple,
mais via une requête compositeSYNO.Entry.Request, contenant plusieurs appels internes, exécutés dans un ordre précis.
Nous allons donc reproduire exactement l’appel fait par l’interface graphique DSM.
🔍 Capture de l’appel DSM (principe)

Lors d’un clic sur “Appliquer” quand “Mode plein régime du ventilateur” a été sélectionné dans DSM, le navigateur envoie une requête POST vers :
/webapi/entry.cgi
avec :
api=SYNO.Entry.Requestmethod=request- un tableau
compound[] - l’appel FanSpeed inclus dans ce contexte
C’est ce contexte complet qui autorise le changement.
🧠 Principe des scripts
- Ouverture d’une session API DSM
- Appel composite
SYNO.Entry.Request - Changement de
dual_fan_speed - Fermeture de session
Deux scripts :
fan_full.sh→ Plein régimefan_cool.sh→ Retour mode normal
📄 Script : passage en mode Plein régime
/root/fan_full.sh
#!/bin/sh
DSM_HOST="https://localhost:5000"
USER="login"
PASS="MotDePasse"
SID=$(curl -sk "$DSM_HOST/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=login&account=$USER&passwd=$PASS&session=Core&format=sid" \
| sed -n 's/.*"sid":"\([^"]*\)".*/\1/p')
curl -sk -X POST "$DSM_HOST/webapi/entry.cgi" \
-d "api=SYNO.Entry.Request" \
-d "method=request" \
-d "version=1" \
-d "mode=sequential" \
-d "stop_when_error=false" \
-d 'compound=[{"api":"SYNO.Core.Hardware.FanSpeed","method":"set","version":1,"dual_fan_speed":"fullfan"}]' \
-d "_sid=$SID"
curl -sk "$DSM_HOST/webapi/auth.cgi?api=SYNO.API.Auth&method=logout&version=3&_sid=$SID"
📄 Script : retour en mode normal (Cool / Auto)
/root/fan_cool.sh
#!/bin/sh
DSM_HOST="https://localhost:5000"
USER="login"
PASS="MotDePasse"
SID=$(curl -sk "$DSM_HOST/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=login&account=$USER&passwd=$PASS&session=Core&format=sid" \
| sed -n 's/.*"sid":"\([^"]*\)".*/\1/p')
curl -sk -X POST "$DSM_HOST/webapi/entry.cgi" \
-d "api=SYNO.Entry.Request" \
-d "method=request" \
-d "version=1" \
-d "mode=sequential" \
-d "stop_when_error=false" \
-d 'compound=[{"api":"SYNO.Core.Hardware.FanSpeed","method":"set","version":1,"dual_fan_speed":"coolfan"}]' \
-d "_sid=$SID"
curl -sk "$DSM_HOST/webapi/auth.cgi?api=SYNO.API.Auth&method=logout&version=3&_sid=$SID"
🔐 Permissions
chmod +x /root/fan_full.sh /root/fan_cool.sh
⏱️ Automatisation (cron DSM)
DSM ne fournit pas crontab en ligne de commande.
Il faut passer par :
Panneau de configuration → Planificateur de tâches
Créer deux tâches :
- Fan FULL →
/root/fan_full.sh - Fan COOL →
/root/fan_cool.sh
Exemple :
- FULL : 08h30
- COOL : 17h30
✅ Testé et validé : le NAS passe bien à fond, puis revient au mode normal.
⚠️ Remarques importantes
- Cette méthode ne nécessite aucun reboot
- Elle fonctionne sur DSM 7.x
- Elle repose sur un comportement interne de DSM (non documenté)
- Synology peut théoriquement modifier ce comportement dans le futur
👉 À ce jour, c’est la seule méthode fiable et reproductible.
🧾 Conclusion
Même si DSM expose une API pour la gestion matérielle, le contrôle de la ventilation est volontairement verrouillé hors interface graphique.
En reproduisant l’appel interne exact de DSM, il devient possible de :
- forcer le mode Plein régime
- automatiser le refroidissement
- intégrer cela dans une stratégie serveur avancée
Sans hack kernel.
Sans reboot.
Sans bricolage dangereux.