projets:jarvis

Ceci est une ancienne révision du document !


Jarvis

Jarvis is our IRC bot to handle most of our internal management. Its source code is available on [our Git repo](http://git.hackens.org/Jarvis/) or on [Github](https://github.com/hackEns/Jarvis). Please refer to these repos for more infos on the way it works. Since the rest of this page is basically a user manual for our members, it will be written in French.

Jarvis est notre bot IRC pour gérer tout notre fonctionnement interne. Il permet notamment d'ajouter des nouvelles factures au budget, de gérer les emprunts, et de surveiller l'hack'ave. Toutes les infos données à Jarvis sont présentées sur [sa visu web](http://hackens.org/jarvis).

Le code est disponible sur [notre dépôt Git](http://git.hackens.org/Jarvis/) ou [Github](https://github.com/hackEns/Jarvis).

## Fonctions

[…] désigne un argument optionnel, (…|…) désigne un choix obligatoire.

### Commandes directes

Toutes les commandes doivent être adressées à Jarvis directement, en les préfixant par `jarvis: `.

* `aide`

  • Usage : `aide [commande]`
  • Affiche l'aide de Jarvis ou de la commande passée en argument.

* `alias`

  • Usage : `alias [categorie]` ou `alias add type nom valeur`.
  • Liste tous les alias enregistrés (respectivement, ceux de la catégorie passée en argument) ou ajoute un nouvel alias `nom` associé à `valeur` pour la catégorie `type`.

* `atx`

  • Usage : `atx (on|off)`
  • Contrôle l'ATX de la RepRap.

* `budget`

  • Usage : `budget (ajoute|retire) [dépense|crédit] montant [budget=BUDGET] commentaire`.
  • `ajoute` ajoute une entrée, `retire` retire une entrée.
  • `dépense` et `crédit` sont optionnels. S'ils ne sont pas spécifiés, il faut rentrer un montant algébrique.
  • `budget=BUDGET` est optionnel. Si non spécifié, l'entrée du budget va sur le budget de l'année en cours. Sinon, elle va sur le budget `BUDGET`.

* `camera`

  • Usage : `camera (ALIAS|ANGLE)`
  • Contrôle la position de la caméra, pour déplacer la caméra à la position définie par l'alias `ALIAS` ou par l'angle `ANGLE` en dégrés.

* `courses`

  • Usage : `courses (acheter|annuler|acheté) item [commentaire]`
  • Note l'objet `item` comme à acheter/acheté ou le supprime de la liste de courses (`annuler`). Possibilité de rajouter un commentaire optionnel.

* `dis`

  • Usage : `dis “quelque chose”`
  • Fait parler Jarvis.

* `disclaimer`

  • Usage : `disclaimer`
  • Affiche un disclaimer.

* `emprunt`

  • Usage : `emprunt outil “jj/mm hh” [email]`
  • Note l'objet `outil` comme emprunté jusqu'à la date `jj/mm hh`. Si l'utilisateur n'est pas sur IRC, une adresse e-mail peut être spécifiée, pour lui renvoyer un rappel par email.

* `historique`

  • Usage : `historique nb_lignes|(début fin)`
  • Affiche l'historique des commandes envoyées à Jarvis. Affiche les `nb_lignes` dernière lignes, ou entre `start` et `end`.

* `info`

  • Usage : `info [atx|camera|leds|stream]`
  • Affiche le statut de tous les périphériques (respectivement uniquement de l'atx / de la caméra / de la lumière / du stream).

* ` jeu`

  • Usage : `jeu`
  • Auto-explicatif…

* `lien`

  • Usage : `lien (dernier|((supprime|cache|affiche) [id|permalien])`
  • `lien dernier` retourne le dernier lien enregistré.
  • `lien (supprime|cache|affiche) [id|permalien]` supprime / marque comme privé / rend public le dernier lien (si pas de paramètre `[id|permalien]` spécifié, ou le lien d'id `id` (respectivement de permalien `permalien`).

* `log`

  • Usage : `log début…fin #tag` ou `log #tag`.
  • Enregistre la section délimitée par `début…fin` (ou la dernière ligne si non spécifié) dans Jarvis, sous le tag `tag`.

* `lumiere`

  • Usage : `lumiere ((R G B)|script)`
  • Contrôle la lumière associée à Jarvis, soit en la mettant à la couleur `(R G B)`, soit en appelant le script `script`.

* `moderation`

  • Usage : `moderation [liste]`
  • TODO

* `retour`

  • Usage : `retour outil [email]`
  • Marque l'outil `outil` emprunté comme retourné.

* `stream`

  • Usage : `stream (on|off)`
  • Lance ou arrête la diffusion de la caméra.

* `update`

  • Usage : `update`
  • Met à jour Jarvis.

* `version`

  • Usage : `version`
  • Affiche les notes de version.

### Liens

Jarvis surveille le chan `#hackens` et ajoute stocke automatiquement tous les liens postés dessus pour les afficher sur sa visu web. Pour ne pas diffuser un lien, il faut alors utiliser la commande `lien`.

## Maintenance

Jarvis tourne sur un Raspberry Pi en cave. Pour y accéder, il suffit de `ssh jarvis@jarvis` sur le réseau de l'hack'ave. La distribution est une Raspbian allégée et modifiée, pour gérer tout ce dont on a besoin, dont Python 3. Toute la configuration de Jarvis se fait dans le fichier `~/Jarvis/config.py` et la documentation sur le dépôt devrait répondre à la plupart des questions.

## Caméra

Voir le fichier `~/servo.py` pour un exemple. Les infos des numéros des pins sont (par exemple) sur http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/turing-machine/two.html Attention, l'alim de Jarvis n'est pas suffisante pour les servos qu'on a, et il faut donc utiliser une alimentation externe. L'alim ATX n'est probablement pas une bonne idée.

  • projets/jarvis.1414776963.txt.gz
  • Dernière modification : 2022/05/05 07:40
  • (modification externe)