Ceci est une ancienne révision du document !
Raspberry TV-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
- Cette appli sert à stocker des réservations de salles : 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 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 renvoie des infos du jour :
{ "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 },
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