Différences
Ci-dessous, les différences entre deux révisions de la page.
| 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/17 12:19] – francoisa | technique:raspitv-accueil [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Raspberry TV-Accueil ====== | + | **Cette |
| - | + | ||
| - | Le projet repose sur l' | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | * Un raspberry connecté à une TV sur lequel | + | |
| - | * RS : RaspberrySlideShow, | + | |
| - | * RaspiTV : une appli qui vient piocher les infos dans Booked et les affiche de manière personnalisée | + | |
| - | + | ||
| - | ===== Préparation - Installation ===== | + | |
| - | + | ||
| - | - Installation de l' | + | |
| - | - Sur un Raspberry, installation du système [[.: | + | |
| - | - Sur le même Raspberry, installation du [[.: | + | |
| - | - Connexion entre le RaspiTV et l' | + | |
| - | + | ||
| - | ===== Installation du code pour API sur le serveur Web - Booked ===== | + | |
| - | < | + | |
| - | + | ||
| - | apt-get install git curl python3-pip | + | |
| - | mkdir -p / | + | |
| - | git clone https:// | + | |
| - | pip3 install flask flask_restful mysql.connector | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Correction des paramètres de connexions à la base de données (dans .env) issus du fichier / | + | |
| - | + | ||
| - | Et lancement de l'API : | + | |
| - | + | ||
| - | < | + | |
| - | ./ | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Test local de l'API : | + | |
| - | + | ||
| - | < | + | |
| - | curl http:// | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Doit renvoyer la date de dernière mise à jour de la base : | + | |
| - | + | ||
| - | < | + | |
| - | " | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ===== Installation du code pour planning sur le Raspberry - raspitv ===== | + | |
| - | + | ||
| - | < | + | |
| - | apt-get install git curl python3-pip | + | |
| - | + | ||
| - | mkdir /srv && cd /srv | + | |
| - | + | ||
| - | git clone https:// | + | |
| - | + | ||
| - | pip3 install flask weasyprint requests | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Modifier les paramètres d' | + | |
| - | + | ||
| - | Et lancer le service pour vérifier que la connexion fonctionne | + | |
| - | + | ||
| - | ===== Config .env en production ===== | + | |
| - | + | ||
| - | < | + | |
| - | PRODENV=" | + | |
| - | + | ||
| - | # Utilisé sur le serveur Web | + | |
| - | APIBKD_DB=" | + | |
| - | APIBKD_USER=" | + | |
| - | APIBKD_PWD=" | + | |
| - | + | ||
| - | # Utilisé sur le raspi | + | |
| - | IPWEB=" | + | |
| - | # DEBUG : jour fixe | + | |
| - | MYDAY=" | + | |
| - | + | ||
| - | DELAYSLEEP=60 | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ===== 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:// | + | |
| - | + | ||
| - | [[http:// | + | |
| - | < | + | |
| - | + | ||
| - | { | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | }, | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ==== Installation et services en détail de l'API ==== | + | |
| - | + | ||
| - | - le code est placé dans / | + | |
| - | + | ||
| - | - Personnaliser le .env (issu du .env.example) pour se connecter à la base de données. | + | |
| - | + | ||
| - | - installer le service **apibkd.service** | + | |
| - | + | ||
| - | - le service doit alors répondre aux requêtes web : [[http:// | + | |
| - | + | ||
| - | Voir procédure technique : [[https:// | + | |
| - | + | ||
| - | 2) Du côté du Raspberry, un script permanent diffuse un diaporama à partir d' | + | |
| - | + | ||
| - | Le code du projet propose un script **plangen.py** | + | |
| - | + | ||
| - | ==== Installation et services en détail de la diffusion sur la TV ==== | + | |
| - | + | ||
| - | - le code est placé dans /srv/raspitv | + | |
| - | + | ||
| - | - Personnaliser le **.env** | + | |
| - | + | ||
| - | - Personnaliser le fichier **/ | + | |
| - | + | ||
| - | - installer le service **raspitv.service** | + | |
| - | + | ||
| - | - le fichier / | + | |
| - | + | ||
| - | Voir [[: | + | |
| - | + | ||
| - | ==== 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 : | + | |
| - | < | + | |
| - | + | ||
| - | systemctl stop rs # service qui lance le diaporama selon les options de | + | |
| - | systemctl stop raspitv # service de génération du diaporama | + | |
| - | systemctl start raspitv.service # service qui relance le nouveau planning, puis relance l' | + | |
| - | 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 | + | |
| - | vcgencmd display_power 0 # éteindre | + | |
| - | vcgencmd display_power 1 # pour allumer l' | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Pour info, par défaut, le nouveau planning est généré sous forme d' | + | |
| - | + | ||
| - | Le fichier '' | + | |
| - | + | ||
| - | Il est possible de consulter la liste des images diffusées en utilisant : | + | |
| - | + | ||
| - | < | + | |
| - | journalctl -u rs.service # dernier log : q pour quitter | + | |
| - | ou | + | |
| - | journalctl -fu rs.service # pour avoir le flux en continu : Ctrl + C pour quitter. | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Parcourir le fichier de log avec les flèches du clavier ou espace (pgdown) et " | + | |
| - | + | ||
| - | ===== Gestion des horaires et diffusion du planning et images ===== | + | |
| - | + | ||
| - | Seuls 3 services seront utilisés et démarrés : | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | * 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. | + | |
| - | + | ||
| - | < | + | |
| - | systemctl disable rs.service | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Une tâche cron est créée selon les besoins d' | + | |
| - | + | ||
| - | < | + | |
| - | 15 8 * * Mon, | + | |
| - | 0 10 * * Mon, | + | |
| - | 15 13 * * Mon, | + | |
| - | 0 14 * * Mon, | + | |
| - | 0 17 * * Mon, | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | 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. | + | |
| - | + | ||