Jeedom pour Arrêter/Allumer votre Nas Synology

ou tout autre Machine avec un serveur ssh !

Introduction :
Nous allons créer un Script dans le plugins Script de Jeedom avec un bouton Start (pour démarrer le Nas), un Bouton Stop (pour arrêter le Nas) et un Etat (Pour connaître l'état de fonctionnement du Nas).

Ici nous allons travailler avec un Jeedom sous Rasbian ou Debian, et un Nas Synology.

Actions à faire sur le Synology :
Activer l'accès SSH au Nas : Panneau de configuration -> Terminal & SNMP :

Activer le WakeOnLan :
Aller dans le Panneau de configuration -> Matériel et alimentation.
Cochez Activer WOL sur le réseau local. (et Redémarrer automatiquement après une panne de courant qui est du coup obligatoire)
(pensez à Cliquez sur Appliquer)

Récupérer l'IP (pensez à mettre une IP Fixe !) et l'Adresse MAC du Nas :
Allez dans le Panneau de configuration -> Centre d'infos -> Réseau :

L'adresse IP va nous permettre l'accès en ssh et le poweroff du Jeedom vers le Nas pour l'éteindre, et l'adresse MAC d'envoyer un message WOL du Jeedom vers le Nas pour le rallumer.

Donner les droits de poweroff à admin :
On va maintenant donner les droits à l'utilisateur admin d'éteindre le NAS :
Pour cela, on va installer un utilitaire permettant d'éditer des fichiers systèmes :
Allez sur le site http://www.mertymade.com/syno/ et cherchez "Config File Editor", ou téléchargez via ce lien : http://www.mertymade.com/downhandler?app=ConfigFileEditor

Sur le Nas, allez dans le "Centre de paquets" et cliquez sur Installation manuelle puis cherchez votre fichier ConfigFileEditor...spk et patientez.

Ouvrez le logiciel "Config File Editor" et dans la liste déroulante, allez tout en bas pour sélectionner "Config File Editor".
A la fin du fichier, ajouter : /etc/sudoers,sudoers et cliquez sur Save :

Il m'est arrivé de devoir taper la touche entrée pour faire une ligne blanche et de la supprimer pour que le bouton Save se dégrise et soit accessible.

Fermez "Config File Editor" et réouvrez le.
Maintenant, dans la liste déroulante, on peut sélectionner "surdoers"

On va placer une ligne qui va permettre à admin de lancer un poweroff pour éteindre le nas en SSH, à la fin du fichier mettre :
admin ALL=NOPASSWD: /sbin/poweroff
Remplacez admin par le nom d'utilisateur admin de votre Nas et ne vous trompez pas dans la syntaxe, ce fichier est vital au bon fonctionnement du Nas.

Cliquez sur Save, et fermez "Config File Editor".
PS : J'ai l'impression que cette configuration est écrasée à chaque mise à jour... à tester.

Sur Jeedom en SSH :
Ouvrez une ligne de commande en SSH.

On va faire en sorte que Jeedom puisse ouvrir une session SSH sur le Nas sans mot de passe.
sudo -i
ls ~/.ssh/id_rsa.pub

Si le fichier n'existe pas, on le génère :
ssh-keygen
Tapez la touche Entrée jusqu'à la fin :

Donc si on retapes ls ~/.ssh/id_rsa.pub, la réponse est /root/.ssh/id_rsa.pub
On vient de générer une clé qui nous permettra une identification automatique sur le Nas et autres périphériques au besoin.
On va passer cette clé au Nas :
ssh-copy-id -i ~/.ssh/id_rsa.pub "admin@ip_du_nas"
Tapez le mot de passe admin du Nas, et la réponse doit être :
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'admin@ip_du_nas'"
and check to make sure that only the key(s) you wanted were added.


Du coup, on teste, tapez : ssh 'admin@ip_du_nas' et entrée.
Vous devez être identifié sur le nas sans nécessité de taper le mot de passe.
Et pour pousser le test, tapez : sudo /sbin/poweroff
Le Nas doit s'éteindre et on revient rapidement sur le ssh de Jeedom.
Attendez un peu que le Nas soit complètement éteint et tapez :
wakeonlan 00:2E:42:F9:76:96
(Remplacez l'adresse MAC par celle de votre NAS)
Attendez bien 2mn, et le Nas doit-être rallumé.

Sur Jeedom en http :
(installez le plugins script si ce n'est pas déjà fait)
Allez dans plugins -> Programmation -> Script
Cliquez sur Ajouter, et donner un Nom : Mon Nas
Dans le premier onglet : Auto-Actualisation (cron) à * * * * *
Et dans l'onglet Commandes :

Commande Stop :
sudo ssh 'admin@ip_du_nas' 'sudo /sbin/poweroff'

Commande Start :
sudo wakeonlan 00:11:32:XX:XX:XX

Commande Etat :
sudo ping -c 1 ' ip_du_nas ' 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
echo "1"
else
echo "0"
fi

Voilà, vous aurez un jolie petit cadre dans Jeedom qui vous permettra d'agir sur votre Nas (ou autres machines, je le répète) !