technique:raspitv-accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:raspitv-accueil [2021/05/05 22:12] francoisatechnique:raspitv-accueil [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 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 sur lequel est installé : +
-      * RS : RaspberrySlideShow, un système de diffusion de diaporama +
-      * RaspiTV : une appli qui vient piocher les infos dans Booked et les affiche de manière personnalisée +
- +
-===== Préparation - Installation ===== +
- +
-  - Installation de l'appli Booked dans un serveur web : [[:dsi:booked_an|Procédure d'installation]] +
-  - Sur un Raspberry, installation du système [[.:raspberryslideshow|Raspberry SlideShow]] +
-  - Sur le même Raspberry, installation du [[.:raspitv-accueil|code RaspiTV]] +
-  Connexion entre le RaspiTV et l'appli Booked avec les bons paramètres +
- +
-===== 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|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|http://ip_booked:5000/v1/YYYY-MM-DD]] et [[http://ip_booked:5000/v1/lastupdate|http://ip_booked:5000/v1/lastupdate]] qui renvoie la date de dernière modification de la base de données. +
- +
-Voir procédure technique : [[https://ladoc.cemea.org/doku.php?id=dsi:tv_diffus_raspberrys#depot_git_et_installation|https://ladoc.cemea.org/doku.php?id=dsi:tv_diffus_raspberrys#depot_git_et_installation]] +
- +
-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|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 +
- +
-Voir [[:dsi:tv_diffus_raspberrys#depot_git_et_installation|procédure technique]] de mise en place du raspiTV +
- +
-==== Déroulement des étapes sur le raspberry rpi1 ==== +
- +
-1) lors du démarrage (rpi ou service raspitv), lancement de rapitvdifff.sh : si le planning est absent, on copie un planning noir pour avoir au moins une image à diffuser (TODO : mettre autre chose = logo CEMEA ?) +
- +
-2) On stoppe le diaporama (il est peut-être lancé) et on arrête la diffusion sur HDMI. +
- +
-3) On lance plangen.py pour générer le planning qui est généré régulièrement selon les modifications. Ce programme est sensé tourner en permanence. +
- +
-4) On ouvre la diffusion sur HDMI et 3 secondes après on lance le diaporama. +
- +
-5) à intervalles réguliers (9h, 17h, week-end), on arrête la diffusion sur HDMI et le diaporama. Et le matin on relance la diffusion et le diaporama (rs). +
- +
-===== Utilisation - vérifications - commandes ===== +
- +
-En cas de modification du code, voici les étapes à respecter pour relancer le diaporama : +
-<code> +
- +
-systemctl stop rs # service qui diffuse le diaporama +
-systemctl stop raspitv # service de génération du diaporama +
-systemctl start raspitv.service # service qui stoppe l'affichage, stop le diapo, relance le nouveau planning, puis relance l'affichage et relance le diaporama +
-# Pour éteindre / allumer la diffusion sur HDMI +
-vcgencmd display_power 0 # éteindre +
-vcgencmd display_power 1 # pour allumer l'écran +
- +
-</code> +
- +
-Pour info, par défaut, le nouveau planning est généré sous forme d'image "''planning.png''" dans le dossier ''/var/lib/rs/''  à partir des fichiers modele.html et modele.css. +
- +
-Le fichier ''planning.html''  est aussi le fichier final généré actualisé avant transformation en image. +
- +
-Il est possible de consulter la liste des images diffusées en utilisant : +
- +
-<code> +
-journalctl -u rs.service # dernier log : q pour quitter +
-ou +
-journalctl -fu rs.service # pour avoir le flux en continu : Ctrl + C pour quitter. +
- +
-</code> +
- +
-Parcourir le fichier de log avec les flèches du clavier ou espace (pgdown) et "q" pour quitter le fichier. +
- +
  • technique/raspitv-accueil.1620245526.txt.gz
  • Dernière modification : 2021/05/05 22:12
  • de francoisa