Pour automatiser cet enregistrement, il va falloir indiquer au NAS une action à faire, et quand la faire. L'action, maintenant, on la connaît, il s'agit d'exécuter notre script de lecture du flux XML de l'IPX et d'enregistrement des valeurs trouvées dans une base de données. Nous avons abordé ce point le 21 octobre 2012. La périodicité dépendra de votre choix : je pense qu'un enregistrement horaire est un bon compromis, vous permettant une certaine quantité d'information (24 relevés par jour) sans toutefois surcharger votre base de données trop rapidement : vous aurez 8760 lignes au bout d'un an, ce qui n'est pas bien élevé au regard des possibilités d'une base mySQL.
Normalement sur un système Linux, cette automatisation se gère dans le cron, une zone réservée à la planification de tâches. Dans la version Busybox (Linux allégé) des Synology, il n'y a pas de cron mais simplement un fichier "crontab" à éditer pour configurer les tâches planifiées du serveur. Pour éditer ce fichier, vous devez tout d'abord vous connecter en tant qu'administrateur à votre NAS à l'aide d'un client Telnet ou SSH. Ces deux protocoles sont gérés par un petit utilitaire bien connu, que je vous recommande : PuTTY, téléchargeable gratuitement sur telecharger.com.
Une fois PuTTY installé sur votre ordi, lancez le : vous devriez voir une fenêtre "PuTTY Configuration" s'ouvrir. Dans cette fenêtre, nous allons rester sur la page d'accueil, catégorie "Session" : pour ce qui nous concerne à ce stade, il est inutile de fouiller dans les autres catégorie de PuTTY. Il vous suffit donc de saisir le nom d'hôte du serveur, ou tout simplement son adresse IP, et choisir un type de connexion (nous prendrons donc Telnet ou SSH).
PuTTYcap0.png
Cliquez ensuite sur le bouton "Open" : la fenêtre de PuTTY se ferme pour laisser la place à la fenêtre de connexion. Pour pouvoir vous connecter à votre NAS, vous devez saisir vos identifiants de connexion : utilisez les identifiants du compte administrateur, car les autres comptes créés sur le NAS (s'il y en a) ne permettront pas la modification du fichier crontab. Attention, les caractères du mot de passe n'apparaissent pas quand vous les tapez au clavier, c'est normal. Une fois l'identification réussie, vous vous retrouvez avec l'invite Diskstation. Vous pouvez alors éditer le fichier crontab avec vi, un petit utilitaire Linux préinstallé sur les Synology. Pour cela, tapez :vi /etc/crontabVous devriez alors voir quelque chose comme ci-dessous : c'est votre fichier crontab ! :-D
PuTTYcap1.png
Mais que veulent bien dire toutes ces lignes et colonnes ? Chaque ligne représente une tâche planifiée, les 5 premières colonnes définissent le "quand", la 6ème c'est "qui", et enfin la dernière c'est "quoi". Décryptons maintenant les 5 premières colonnes avec précision pour définir quand lancer une tâche :
- une étoile veut dire "à chaque" : donc une étoile dans la colonne minute veut dire "chaque minute" ou "toutes les minutes". Idem pour les heures (hour), les jours calendaires (mday) et les jours de la semaine, lundi, mardi, etc (wday).
- un nombre indique avec précision le jour et l'heure : par exemple la deuxième ligne de mon fichier crontab indique que la tâche doit s'exécuter tous les dimanches (wday=7) de chaque mois (month=*) à 12h30.

Normalement votre fichier édité pour la première fois ne comporte que les 2 premières lignes : la première indique au NAS de mettre à jour son heure système en se connectant par NTP à un serveur internet (ici time.nist.gov) tous les jours à minuit, la deuxième permet de vérifier les mises à jour des packages installés tous les dimanches à 12h30. Vous pouvez donc constater que j'ai rajouté 3 autres tâches planifiées, à savoir l'exécution de scripts PHP, c'est pour cela que la "command" commence par php suivi de l'adresse physique du script (c'est-à-dire l'adresse depuis la racine de votre NAS). Dans mon cas, voici le détail de mes 3 tâches :
- la première consiste à exécuter le fameux script d'enregistrement du flux XML pour constituer notre base de données des relevés : il est donc programmé tous les jours et toutes les heures (0h02, 1h02, 2h02 et ainsi de suite).
- la deuxième c'est pour exécuter un script de lecture du flux XML chaque minute pour obtenir la consommation électrique quasi-instantanée de ma maison et des équipements également suivis (PAC et chauffe-eau) en attendant la téléinfo.
- enfin la troisième c'est pour effectuer une sauvegarde (dump) quotidienne de la base de données générale sur un autre serveur, à 23h56.

Voyons maintenant comment rajouter ou modifier des lignes. Pour cela, familiarisez-vous avec les commandes ci-dessous, pour vous balader dans votre fichier crontab, l'éditer et sauvegarder les modifications (ou non). Sachez qu'à l'ouverture du fichier, vous êtes en consultation, les lignes ne peuvent pas être éditées. Du coup :
- pour passer en édition : pressez la touche "i" ou "a", vous verrez alors en bas de votre fenêtre un "I" s'afficher,
- pour quitter le mode édition : pressez "échap"
- pour supprimer un caractère : pressez la touche "x" hors mode édition
- pour supprimer une ligne : pressez deux fois de suite la touche "d" hors mode édition
- pour enregistrer le fichier et quitter vi : sortez du mode édition, puis tapez ":wq!" suivi de la touche "entrée".
- pour quitter sans enregistrer : pratique quand on a peur d'avoir fait une bêtise, sortez du mode édition puis tapez ":q!" suivi de la touche "entrée".

Dernière chose très importante : vous avez modifié votre fichier crontab, très bien ! :bien: Mais il vous reste une étape importante : il faut encore rebooter le processus du NAS qui lit le fichier crontab pour exécuter les tâches planifiées ! En effet, au lancement de ce processus (en gros le jour où vous avez allumé le NAS) le fichier crontab a été mis en mémoire et n'est pas relu si vous le modifiez entre-temps. Pour éviter de rebooter le NAS, nous allons simplement rebooter le processus des tâches planifiées. Pour ce faire, vous devez taper les 2 lignes suivantes à l'invite Diskstation :
/usr/syno/etc.defaults/rc.d/S04crond.sh stopLe NAS doit vous répondre "stop crond". /usr/syno/etc.defaults/rc.d/S04crond.sh startLe NAS vous répond "Starting crond...". Enfin, pour clôturer la connexion, un simple "exit" suffit.

NOTA : n'oubliez pas que, pour gagner du temps, le curseur "haut" vous permet de copier-coller les dernières commandes saisies. ;-D