Basée sur une idée initiale de Tchex, le script a ensuite a re-écrit pour résoudre les nombreux problèmes de “Login failed” rencontrés par certains.
Avec ce script php et une petite bibliothèque que vous stockerez sur votre raspberry par exemple, vous allez pouvoir par l’intermédiaire de php ouvrir une session ssh sur votre syno pour lui demander de s’éteindre, c’est l’équivalent du bouton off sous l’interface DSM ou encore de la commande shutdown dans un terminal.
Le gros plus c’est que comme cet appel se fera depuis une requête HTTP, il va pouvoir être intégrer dans un actionneur HTTP et intégrer vos scénarios eedomus pour par exemple, éteindre le NAS à l’activation de l’alarme ou encore si il fait trop chaud dans la pièce.
Au lieu d’utilisez la librairie phpseclib comme dans l’article initial, l’extension php ssh2 est utilisée ici, d’après les premiers retours ça marche bien.
l’exemple est fait ici à partir de captures d’écran d’un synology mais l’extension est disponible quelque soit la machine utilisée.
pour activer l’extension php ssh2, il faut aller dans le panneau de configuration / Services web puis dans les paramètres php (comme indiqué ci-dessous)
Téléchargez ensuite le script:
[wpdm_file id=23]
Dezippez puis ouvrez le fichier stop.php dans votre éditeur favoris puis modifiez les lignes surlignées:
[php highlight=”7,8,13,15″]</pre>
<!–?php </pre–>
$connection = ssh2_connect(‘192.168.x.x’, 22);
if (!ssh2_auth_password($connection, ‘admin’, ‘password’)) {
die(‘Echec de l\’identification…’);
}
$stream = ssh2_exec($connection, ‘poweroff’);
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
// Enable blocking for both streams
stream_set_blocking($errorStream, true);
stream_set_blocking($stream, true);
echo "OnGoing Shutdown";
?>
<pre>[/php]
[alert style=”info” title=”Details”]
ligne 3: remplacez 192.168.x.x par l’IP de votre NAS
ligne 5: remplacez admin et password par vos identifiants root sur le NAS
[/alert]
Enregistrez vos modifications et déposez le fichier SynoStop.php dans le répertoire web de votre syno.
Voila votre script est prêt, passons à présent coté eedomus.
créer un nouveau actionneur HTTP:
puis donnez lui la valeur suivante:
Il ne vous reste plus qu’a intégrer cet actionneur dans vos scénarios pour éteindre automatiquement et surtout proprement votre NAS en toute sécurité !
Il s’agit ici de vous montrer comment exécuter la commande pour éteindre votre syno mais vous pouvez aussi automatiser d’autres commandes sur le même principe pour piloter certaines actions directement depuis l’eedomus.
je vous recommande aussi de mettre en place un fichier .htaccess au même endroit que le fichier StopSyno.sh qui vous permettra d’éviter que n’importe qui n’éteigne votre NAS.
Merci à Tchex pour l’astuce 😉
Merci à vous deux;)
Rocketlud toi qui à un rasp tu as essayé le tuto “Monitorez l’espace disque de votre raspberry/syno/PC sous eedomus” parce que chez moi et dplein ça ne fonctionne pas ou alors on s’est planté quelque part… me connaissant j’opterai pour la deuxième option… mais bon sait t’on jamais ++
Merci pour ce partage.
A noter que le script peut-être hébergé sur le NAS lui-même. Ca peut-être utile pour ceux qui n’ont pas de raspberry. 🙂
Je suppose que ça va venir mais un petit pack d’icônes associées serait le top 🙂
Des icônes ! Des icônes ! Des icônes ! 😀
les icônes arrivent prochainement 😉
J’ai hébergé le script directement sur le nas mais il ne fonctionne pas : je coince …
J’ai crée le http pour actionner l’extinction : aucun message d’erreur mais le nas ne s’éteint pas.
Merci pour votre aide
Help! J’ai un “login failled” quand je lance ma requête, pourtant sur putty je me connecte sans probléme en ssh en root et avec le même mot de passe que dans stop.php! une idée?
Aucun pb de mon côté.
A noter que pour moi le script est hébergé sur le NAS directement dans un rep protégé par un htaccess.
J’ai essayé aussi de le mettre sur le syno mais avec le même effet…
en fait pout l’adresse HTTP …
après votre ID , il faut rajouter le chemein de votre dossier
pour le trouver…
cliquer sur votre script .php et faire un click droit puis “propriétés”…
votre chemin apparait dans la case emplacement
faire un copier/coller et le mettre à la suite de l’adresse de votre NAS !!!
je confirme que si le “service web” est activé, le lien de l’article est le bon 🙂
Bonjour et merci pour ce tuto
Je ne parviens pas à trouver ce qu’il faut mettre dans le .htaccess pour réserver l’accès a l’actionneur eedomus
Bonsoir, merci ce post, je serais également preneur pour une meilleur du htaccess
Bonjour.
Le script est placé sur le n’as syno. lorsque vous dite il faut mettre le chemin compte type /volume1/web/domotique/SynoStop.php
Je le met dans le script?
merci a vous
Bonjour la manip ne fonctionne pas, pourtant en me connectant en ssh, avec la commande “shutdown -h now” j’arrive a l’éteindre, pensez vous qu’il soit possible de créer un script permettant cette exécution en php?
Je confirme cela ne marche plus, malgré ssh activé, ssh2 activé coté php
Ca n’a pas d’impact sur le syno 🙁
DSM 5.1-5022 Update 4
Une idée de ton coté Aurel ?
Le script n’est plus dispo