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 23:50] 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 sur lequel est installé :+  * Un raspberry connecté à une TV sur le port HDMI 4 sur lequel est installé :
       * RS : RaspberrySlideShow, un système de diffusion de diaporama       * 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       * RaspiTV : une appli qui vient piocher les infos dans Booked et les affiche de manière personnalisée
Ligne 21: Ligne 21:
 apt-get install git curl python3-pip apt-get install git curl python3-pip
 mkdir -p /srv/raspitv && cd /srv/raspitv mkdir -p /srv/raspitv && cd /srv/raspitv
-git clone https://code.cemea.org/francois.audirac/raspitv.git +https://code.cemea.org/cemea-an/raspitv.git 
-pip3 install flask flask_restful python-connector+pip3 install flask flask_restful mysql.connector
  
 </code> </code>
Ligne 48: Ligne 48:
  
 </code> </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 ===== ===== Installation du code pour planning sur le Raspberry - raspitv =====
Ligne 56: Ligne 74:
 mkdir /srv  && cd /srv mkdir /srv  && cd /srv
  
-git clone https://code.cemea.org/francois.audirac/raspitv.git+https://code.cemea.org/cemea-an/raspitv.git
  
 pip3 install flask weasyprint requests pip3 install flask weasyprint requests
Ligne 75: Ligne 93:
 APIBKD_USER="apibkd_readonly" APIBKD_USER="apibkd_readonly"
 APIBKD_PWD="motdepassesecret" APIBKD_PWD="motdepassesecret"
 +APIBKD_ADDRESS="127.0.0.1"
  
 # Utilisé sur le raspi # Utilisé sur le raspi
-IPWEB="10.1.9.26"+API_URL="https://salles.cemea.lan"
 # DEBUG : jour fixe # DEBUG : jour fixe
 MYDAY="2020-09-28" MYDAY="2020-09-28"
Ligne 155: 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 178: 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