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
Dernière révisionLes deux révisions suivantes
technique:raspitv-accueil [2021/05/05 13:00] francoisatechnique:raspitv-accueil [2022/01/26 11:35] – [Installation du code pour planning sur le Raspberry - raspitv] guillaumed
Ligne 5: Ligne 5:
   * 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]]   * 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]]       * 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+  * Un raspberry connecté à une TV sur le port HDMI 4 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 
 + 
 +===== Installation du code pour API sur le serveur Web - Booked ===== 
 +<code> 
 + 
 +apt-get install git curl python3-pip 
 +mkdir -p /srv/raspitv && cd /srv/raspitv 
 +https://code.cemea.org/cemea-an/raspitv.git 
 +pip3 install flask flask_restful mysql.connector 
 + 
 +</code> 
 + 
 +Correction des paramètres de connexions à la base de données (dans .env) issus du fichier /var/www/booked/config.php 
 + 
 +Et lancement de l'API : 
 + 
 +<code> 
 +./apibkd.py 
 + 
 +</code> 
 + 
 +Test local de l'API : 
 + 
 +<code> 
 +curl http://127.0.0.1:5000/v1/lastupdate 
 + 
 +</code> 
 + 
 +Doit renvoyer la date de dernière mise à jour de la base : 
 + 
 +<code> 
 +"2020-09-30 22:24:46" 
 + 
 +</code> 
 + 
 +Ensuite on va rajouter nginx comme proxy devant (pour pouvoir gérer le HTTPS) ; on rajoute dans ''/etc/nginx/sites-enabled/salles'' la suite : 
 +<code> 
 + # On redirige vers l'API booked en python 
 + location /v1/ { 
 + include proxy_params; 
 + proxy_pass http://127.0.0.1:5000; 
 +
 +</code> 
 + 
 +On relance nginx (''systemctl reload nginx'') puis on vérifie que cela marche bien : 
 +<code> 
 +curl https://salles.cemea.lan/v1/lastupdate 
 +</code> 
 + 
 +Pour finir, on va rendre l'api Flask accessible uniquement sur la machine locale (car là, elle est encore joignable sur http://sonip:5000), en modifiant le .env avec ''APIBKD_ADDRESS=127.0.0.1'' puis en relançant l'API. 
 + 
 +Pour vérifier, on peut tenter de ''curl http://ipdesalles:5000/v1/lastupdate'' : si on obtient une "connection refused", c'est qu'on a bien enlevé l'accès direct à l'API booked sur le LAN 
 + 
 +===== Installation du code pour planning sur le Raspberry - raspitv ===== 
 + 
 +<code> 
 +apt-get install git curl python3-pip 
 + 
 +mkdir /srv  && cd /srv 
 + 
 +https://code.cemea.org/cemea-an/raspitv.git 
 + 
 +pip3 install flask weasyprint requests 
 + 
 +</code> 
 + 
 +Modifier les paramètres d'accès dans le.env (URL au serveur web). 
 + 
 +Et lancer le service pour vérifier que la connexion fonctionne 
 + 
 +===== Config .env en production ===== 
 + 
 +<code> 
 +PRODENV="1" 
 + 
 +# Utilisé sur le serveur Web 
 +APIBKD_DB="sallesbkd_database" 
 +APIBKD_USER="apibkd_readonly" 
 +APIBKD_PWD="motdepassesecret" 
 +APIBKD_ADDRESS="127.0.0.1" 
 + 
 +# Utilisé sur le raspi 
 +API_URL="https://salles.cemea.lan" 
 +# DEBUG : jour fixe 
 +MYDAY="2020-09-28" 
 + 
 +DELAYSLEEP=60 
 + 
 +</code>
  
 ===== Comment ça marche ? ===== ===== Comment ça marche ? =====
Ligne 58: Ligne 155:
 - 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 - 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 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]]+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 ==== ==== Déroulement des étapes sur le raspberry rpi1 ====
Ligne 77: Ligne 174:
 <code> <code>
  
-systemctl stop rs # service qui diffuse le diaporama+systemctl stop rs # service qui lance le diaporama selon les options de
 systemctl stop raspitv # service de génération du 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+systemctl start raspitv.service # service qui relance le nouveau planning, puis relance l'affichage et relance le diaporama avec photos 
 +systemctl start raspitvoff.service # service qui éteint et stop tout 
 +systemctl start raspitvplan.service # service qui relance le diaporama avec le planning seul, sans photos.
 # Pour éteindre / allumer la diffusion sur HDMI # Pour éteindre / allumer la diffusion sur HDMI
 vcgencmd display_power 0 # éteindre vcgencmd display_power 0 # éteindre
Ligne 100: Ligne 199:
  
 Parcourir le fichier de log avec les flèches du clavier ou espace (pgdown) et "q" pour quitter le fichier. Parcourir le fichier de log avec les flèches du clavier ou espace (pgdown) et "q" pour quitter le fichier.
 +
 +===== Gestion des horaires et diffusion du planning et images =====
 +
 +Seuls 3 services seront utilisés et démarrés :
 +
 +  * raspitv : planning et photos
 +  * raspitvplan : planning seul
 +  * raspitvoff : extinction
 +
 +Ces services interagissent avec rs et le script python.
 +
 +Le service de diaporama rs par défaut est désactivé pour ne pas se lancer au démarrage du raspi.
 +
 +<code>
 +systemctl disable rs.service
 +
 +</code>
 +
 +Une tâche cron est créée selon les besoins d'allumage dans /etc/cron.d/raspitv contenant :
 +
 +<code>
 +15 8 * * Mon,Tue,Wed,Thu,Fri root systemctl start raspitvplan.service
 +0 10 * * Mon,Tue,Wed,Thu,Fri root systemctl start raspitv.service
 +15 13 * * Mon,Tue,Wed,Thu,Fri root systemctl start raspitvplan.service
 +0 14 * * Mon,Tue,Wed,Thu,Fri root systemctl start raspitv.service
 +0 17 * * Mon,Tue,Wed,Thu,Fri root systemctl start raspitvoff.service
 +
 +</code>
 +
 +Le planning seul est ici affiché du lundi au vendredi de 8h15 à 10h et de 13h15 à 14h.
 +
 +Le planning avec images est affiché du lundi au vendredi de 10h à 13h15 et de 14h à 17h.
 +
 +Il est stoppé en dehors de ces horaires.
  
  
  • technique/raspitv-accueil.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1