| 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 | |
| | |