Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 12/11/2013, à 00:23

r2-d4

Sonnerie Pause Atelier [Résolu]

Bonsoir à tous,

Pour ma société je travaille actuellement à faire un système permettant de sonner l'heure de début de journée, de début de pause, de fin de pause, de fin de journée, etc...
En soi, rien de très complexe car la seule contrainte est que le système sois synchro avec l'heure du réseau informatique.

Ce que je vais faire est même très simple :
- J'achète une enceinte amplifiée (Behringer CE500A) et un raspberry Pi type B.
- Je relie via la sortie audio du raspberry, le raspberry à l'enceinte amplifiée
- Je synchronise l'horloge du raspberry à notre serveur de temps via NTP
- Je crée un petit script qui permet que dés qu'il est l'heure du début d'une pause (par exemple), le raspberry va chercher un petit clip audio situé sur notre serveur de données et le diffuse sur l'enceinte amplifiée
- Le raspberry recommence l'action à chaque fois qu'il est l'heure d'un évènement particulier, comme une sonnerie d'école en fait.
- Il faut impérativement le synchroniser avec notre serveur NTP car on va mettre 3 ou 4 systèmes comme celui-là dans l'entreprise et il faut que tout sonne en même temps !!

Mon problème :
Je ne sais pas très bien comment coder le script pour faire cela. Quelqu'un peut-il me donner une trame et m'aider ?

Merci à tous !

Dernière modification par r2-d4 (Le 30/01/2014, à 01:55)

Hors ligne

#2 Le 12/11/2013, à 09:35

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

Salut,

Plutôt que t'embêter à faire un script et tout et tout, pourquoi ne pas simplement faire ça avec des tâches cron ?

1/ tu montes le serveur de données à travers le réseau, par exemple dans /data (protocole NFS ou CIFS)
2/ tu choisis un logiciel capable de lire tes petits clips audio (par exemple mpg123, si c'est du mp3)
3/ tu crées un utilisateur dédié à la lecture des clips (par exemple lecteur)
4/ tu crées un fichier /etc/cron.d/sonneries où tu mets tes différentes définitions de sonneries, par exemple :

0 16 * * 1-5 lecteur mpg123 "/data/sonneries/l heure du gouter.mp3"

Une telle ligne se décompose de la manière suivante :
- minute à laquelle exécuter la commande
- heure à laquelle exécuter la commande
- jour du mois auquel exécuter la commande
- mois auquel exécuter la commande
- jour de la semaine auquel utiliser la commande
- nom de l'utilisateur sous lequel exécuter la commande
- commande à exécuter

En l'occurrence, pour mon exemple, ça donne :
- faire exécuter « mpg123 "/data/sonneries/l heure du gouter.mp3" » par l'utilisateur « lecteur » du lundi au vendredi à 16h00.

Tes lignes dans le fichier /etc/cron.d/sonneries auraient alors toujours la même forme :

<A> <B> <C> <D> <E> lecteur mpg123 "/data/<F>"

où :
- A à E définissent le moment auquel jouer la sonnerie
- F définit la sonnerie à jouer


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#3 Le 12/11/2013, à 12:08

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

Salut,

Merci de ta réponse tiramiseb !
C'est une excellente idée, bien plus souple que la mienne d'ailleurs.
Je vais essayer cela ! Petites questions en plus pour me guider :
1. A quoi cela sert-il de créer un utilisateur dédié ? Etant donné que le raspberry ne servira qu'à cela, utiliser root ne suffit pas ?
2. "cron.d" c'est "cron.daily" ?

Merci !

Hors ligne

#4 Le 12/11/2013, à 20:58

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

1. A quoi cela sert-il de créer un utilisateur dédié ? Etant donné que le raspberry ne servira qu'à cela, utiliser root ne suffit pas ?

C'est une sécurité.
Tu vas aller chercher des fichiers sur un serveur tiers et les lire localement. Si jamais une faille est découverte dans mpg123 qui ferait quelque chose de nocif à la lecture d'un fichier MP3 avec un certain contenu spécialement créé et que quelqu'un pouvait déposer un tel fichier sur le serveur à la place du fichier "légitime", il y aurait une possibilité de faire des dégâts sur le Raspberry Pi.
Oui, c'est un peu tiré par les cheveux, oui c'est très peu probable... mais la sécurité informatique, c'est le règne de la parano...

2. "cron.d" c'est "cron.daily" ?

Non.

- "cron.d" contient des fichiers de configuration qui définissent des commandes à exécuter selon les dates et heure, comme je t'ai expliqué plus haut.
- "cron.daily" contient des liens vers des scripts à exécuter tous les jours


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#5 Le 12/11/2013, à 23:31

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

tiramiseb a écrit :

C'est une sécurité.
[..]
Oui, c'est un peu tiré par les cheveux, oui c'est très peu probable... mais la sécurité informatique, c'est le règne de la parano...

Non, non, tu as raison, je suis complètement d'accord, merci pour ton explication

tiramiseb a écrit :

Ah D'accord, je ne comprenait pas bien la différence, super merci !

Je commande le raspberry demain et j'essaye tout ça dans la foulée. Mais je ne vois pas de raison pour que ça ne fonctionne pas avec toute cette aide !

Merci encore Tiramiseb

Hors ligne

#6 Le 20/11/2013, à 22:02

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

Bonsoir à tous,

Tiramiseb, j'ai reçu le pi et ai mis un petit raspbian dessus. Jusque là tout vas bien, j'y accède en SSH donc pas de problèmes.
J'ai fait comme tu m'as dis et j'ai créé un fichier "test" dans "cron.d" avec l'utilisateur "pi" qui est l'utilisateur par défaut du pi de cette manière :

54 20 * * 1-5 pi mpg123 "/home/pi/pi.mp3"

De cette façon il devrait bien me le jouer à 20H54 avec l'utilisateur pi. Or problème, il ne se passe rien.

J'ai synchronisé mon pc ainsi que le pi sur le même serveur ntp, ils ont donc exactement la même heure
Lorsque je fait :

mpg123 /home/pi/pi.mp3

La musique sort bien, donc pas de problème d'acheminement du son

C'est comme si il ne lisait pas correctement le contenu de cron.d
Il y a quelque chose à activer quelque part pour activer ces tâches cron ?

Tu vois ce que ça peut-être ?

Merci !

Hors ligne

#7 Le 20/11/2013, à 23:03

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

Lorsque je fait :

mpg123 /home/pi/pi.mp3

La musique sort bien, donc pas de problème d'acheminement du son

Tu fais ça avec l'utilisateur "pi" ?

Le répertoire utilisateur de "pi" est-il chiffré ?

Il y a quelque chose à activer quelque part pour activer ces tâches cron ?

Non, ça marche tout seul normalement.


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#8 Le 21/11/2013, à 00:33

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

Oui je fait cela avec l'utilisateur pi. Que se soit en sudo ou non, cela fonctionne dans les deux cas.
L'installation de raspbian est quasi complètement automatisée. Les mots de passes sont fournis. Donc je ne sais pas si le répertoire est chiffré. Franchement cela m'étonnerai vraiment, mais peut-on le vérifier ?

Si ce n'est pas ça, tu vois autre chose ?

J'ai essayé de faire la même chose mais dans le fichier affiché par "crontab -e", c'est pareil cela ne donne rien de plus.

Merci de ton aide !

Dernière modification par r2-d4 (Le 21/11/2013, à 00:33)

Hors ligne

#9 Le 21/11/2013, à 00:40

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

Je viens de déplacer le fichier mp3 dans /root pour être sûr que ce ne soit pas un problème de chiffrage du dossier home et j'ai remodifié la tache pour qu'elle lise le fichier quelques minutes après.
Rien n'y fait. On dirait qu'il ne regarde même pas dans le dossier cron.d ...

Hors ligne

#10 Le 21/11/2013, à 11:16

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

Donc je ne sais pas si le répertoire est chiffré. Franchement cela m'étonnerai vraiment, mais peut-on le vérifier ?

Ce n'est pas chiffré par défaut, par Raspbian. Donc pas de souci a priori de ce côté-là.

J'ai essayé de faire la même chose mais dans le fichier affiché par "crontab -e", c'est pareil cela ne donne rien de plus.

Dans ce cas il ne faut pas mettre le nom d'utilisateur (la ligne n'est donc pas tout à fait la même) : l'as-tu fait ?

On dirait qu'il ne regarde même pas dans le dossier cron.d ...

Ça me semblerait étonnant... Mais bon, Raspbian a peut-être en effet désactivé ça.

Le fichier /etc/crontab existe-t-il ?
Si oui, est-ce que ça marche en y mettant ta ligne ?


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#11 Le 21/11/2013, à 11:26

Tamarou

Re : Sonnerie Pause Atelier [Résolu]

Bonjour,
A vous lire j'ai voulu tester, mais sur un xubuntu 12.04 récent il n'y a pas de résultat. C'est comme si les fichiers de tâches n'étaient pas lus, ou comme si cron ne tournait pas.

EDIT : la commande n'était pas bonne, avec la lecture d'un mp3, ça marche bien.

Dernière modification par Tamarou (Le 21/11/2013, à 12:02)


Utilisateur d'Archlinux/Xfce et Xubuntu 14.04

En ligne

#12 Le 21/11/2013, à 11:27

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

Tamarou : comment as-tu fait précisément ton test ? Contenu du fichier ? Résultat attendu ? Résultat obtenu ?

Moi j'ai mis un test en place et ça fonctionne bien ; j'ai joué avec les droits sur /etc/cron.d/test (en me disant que c'est peut-être un problème de droits sur ce ficheir) mais ça ne change rien...

(sur Ubuntu 13.10)

Ça fonctionne comme ça depuis que j'utilise Linux, depuis Debian 2.2, donc depuis avant même l'existence d'Ubuntu... Et Raspbian étant basé sur Debian, j'imagine que ça fonctionne pareil... Là mes Raspberry Pi ne sont pas installés, je ne peux pas tester...

Dernière modification par tiramiseb (Le 21/11/2013, à 11:37)


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#13 Le 21/11/2013, à 11:48

Tamarou

Re : Sonnerie Pause Atelier [Résolu]

Et bien j'ai aussi regardé la doc d'ubuntu-fr et tes explications.
J'ai fait le choix de lancer une tâche toutes les minutes par  "cron -e" édité par nano =
* * * * * zenity --info --text="cron c'est enfin décidé"

Elle ne se déclenche jamais alors que la commande dans un terminal affiche bien une fenêtre zenity avec le texte.

Je vais tester avec un mp3.

EDIT : bon là ça marche. Il y avait un truc avec la commande zenity !

Je vais poursuivre sur la framboise.

EDIT : cela fonctionne bien sur le RaspberryPi après installation de mpg123 et en passant par "crontab -e".

Dernière modification par Tamarou (Le 21/11/2013, à 20:15)


Utilisateur d'Archlinux/Xfce et Xubuntu 14.04

En ligne

#14 Le 27/11/2013, à 00:42

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

J'ai un peu du mal à comprendre la conclusion de tamarou.

La commande fonctionne avec crontab -e, mais pourquoi dis-tu que tu passes par "zenity" ? Je vais me renseigner la dessus.

Pour ma part, comme je l'ai expliqué plus haut, moi cela ne fonctionne ni dans cron.d ni dans crontab -e !!
Je ne sais pas très bien comment faire...

Un idée ?

Hors ligne

#15 Le 27/11/2013, à 08:23

Tamarou

Re : Sonnerie Pause Atelier [Résolu]

zenity, c'était juste une façon de tester une commande, car je n'avais pas de fichier de musique sur ma machine de test tongue
En résumé, sur le RasPy, cela fonctionne bien après installation de mpg123; et en utilisant crontab -e

Il te faut peut-être faire le ménage de tes tentatives précédentes ou même repartir sur une image "neuve", c'est si facile.

Dernière modification par Tamarou (Le 27/11/2013, à 08:54)


Utilisateur d'Archlinux/Xfce et Xubuntu 14.04

En ligne

#16 Le 27/11/2013, à 09:57

tiramiseb

Re : Sonnerie Pause Atelier [Résolu]

Pour ma part [...] moi cela ne fonctionne ni dans cron.d ni dans crontab -e !!

Tu n'as pas répondu à mon message en #10, j'avais donc imaginé que tu n'avais plus besoin d'aide.

Si ça ne marche toujours pas, peux-tu répondre aux questions que je t'ai posées jeudi dernier ?


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#17 Le 30/01/2014, à 01:55

r2-d4

Re : Sonnerie Pause Atelier [Résolu]

Par acquis de conscience, je termine ce sujet en indiquant que le système est en place depuis le 1er Janvier 2014 et que cela fonctionne superbement bien !
Pour le problème de tâche cron, je pense que je m'y suis mal pris, car après avoir laissé tombé quelque jours, je m'y suis remis et en ajoutant les lignes dans crontab cela a parfaitement fonctionné, preuve en est maintenant que le système fonctionne tous les jours.

Merci à vous deux Tiramiseb et Tamarou de m'avoir aidé à réaliser ce projet !

Hors ligne

Haut de page ↑