Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
technique:raspitv-accueil [2021/04/29 23:36] – francoisa | technique:raspitv-accueil [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== Raspberry TV-Accueil ====== | **Cette page est obsolète. Veuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/raspitv-accueil|raspitv-accueil]]** |
| |
Le projet repose sur l'utilisation conjointe de 2 outils : | |
| |
* Une appli d'enregistrement de réservations : Booked. Appli libre forkée et disponible ici : [[https://github.com/effgarces/BookedScheduler|https://github.com/effgarces/BookedScheduler]] | |
* Cette appli sert à stocker des réservations de salles : [[https://ladoc.cemea.org/dsi/booked_an|https://ladoc.cemea.org/dsi/booked_an]] | |
* Un raspberry connecté à une TV qui vient piocher les infos dans Booked et les affiche de manière personnalisée | |
| |
===== Comment ça marche ? ===== | |
| |
1) Booked fonctionne sur le mode d'une appli Web avec PHP & une base de données MySQL dont la structure reste technique. | |
| |
Une partie du [[https://code.cemea.org/francois.audirac/raspitv|code du projet]] propose à l'aide d'un script Python-Flask **apibkd.py** (lancé par le script runapi.sh) une API qui affiche les événements voulus sur une URL dans un fichier JSON donné : | |
| |
[[http://ip_booked:5000/v1/YYYY-MM-DD|http://ip_booked:5000/v1/YYYY-MM-DD]] renvoie des infos du jour : | |
<code> | |
| |
{ | |
"titre": "D4", | |
"description": "", | |
"organisateur": "Edwige MASSON", | |
"datedebut": "2021-04-26 09:00:00", | |
"datefin": "2021-04-26 17:00:00", | |
"nbpers": "", | |
"salle": "Salle 15", | |
"series_id": 49, | |
"reservation_instance_id": 38 | |
}, | |
| |
</code> | |
==== Installation et services en détail de l'API ==== | |
| |
- le code est placé dans /srv/raspitv depuis le dépot cloné : https://code.cemea.org/francois.audirac/raspitv | |
| |
- Personnaliser le .env (issu du .env.example) pour se connecter à la base de données. | |
| |
- installer le service **apibkd.service** qui va lancer /srv/raspitv/**runapi.sh** qui va lancer **apibkd.py** | |
| |
- le service doit alors répondre aux requêtes web : http://ip_booked:5000/v1/YYYY-MM-DD et http://ip_booked:5000/v1/lastupdate qui renvoie la date de dernière modification de la base de données. | |
| |
2) Du côté du Raspberry, un script permanent diffuse un diaporama à partir d'images contenues dans des dossiers distants. | |
| |
Le code du projet propose un script **plangen.py** qui vient régulièrement chercher les modifications issues de Booked et générer une image **planning.png** à partir d'un fichier HTML + CSS. Ce fichier placé dans /var/lib/rs/ sera donc affiché au milieu des images diffusées. Si aucun événement n'est programmé, le planning est noir. | |
| |
==== Installation et services en détail de la diffusion sur la TV ==== | |
| |
- le code est placé dans /srv/raspitv depuis le dépot cloné : https://code.cemea.org/francois.audirac/raspitv | |
| |
- Personnaliser le **.env** (issu du .env.example) pour adapter des paramètres de diffusion | |
| |
- Personnaliser le fichier **/var/lib/rs/media.conf** pour personnaliser les paramètres de connexion au serveur/cloud : accès aux images distantes | |
| |
- installer le service **raspitv.service** qui va lancer /srv/raspitv/**raspitvdiff.sh** qui va générer le planning (**plangen.py**) et lancer la diffusion du diaporama. | |
| |
- le fichier /etc/crontab est personnalisé pour varier les périodes d'affichage avec : extinction d'écran + arrêt diffusion / démarrage écran + départ diffusion | |
| |