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édenteDernière révisionLes deux révisions suivantes | ||
technique:raspitv-accueil [2021/05/05 13:00] – francoisa | technique:raspitv-accueil [2022/01/26 11:35] – [Installation du code pour planning sur le Raspberry - raspitv] guillaumed | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Une appli d' | * Une appli d' | ||
* Cette appli sert à stocker des réservations de salles : [[https:// | * Cette appli sert à stocker des réservations de salles : [[https:// | ||
- | * 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, | ||
+ | * 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 / | ||
+ | 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 : | ||
+ | |||
+ | < | ||
+ | " | ||
+ | |||
+ | </ | ||
+ | |||
+ | Ensuite on va rajouter nginx comme proxy devant (pour pouvoir gérer le HTTPS) ; on rajoute dans ''/ | ||
+ | < | ||
+ | # On redirige vers l'API booked en python | ||
+ | location /v1/ { | ||
+ | include proxy_params; | ||
+ | proxy_pass http:// | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | On relance nginx ('' | ||
+ | < | ||
+ | curl https:// | ||
+ | </ | ||
+ | |||
+ | Pour finir, on va rendre l'api Flask accessible uniquement sur la machine locale (car là, elle est encore joignable sur http:// | ||
+ | |||
+ | Pour vérifier, on peut tenter de '' | ||
+ | |||
+ | ===== Installation du code pour planning sur le Raspberry - raspitv ===== | ||
+ | |||
+ | < | ||
+ | apt-get install git curl python3-pip | ||
+ | |||
+ | mkdir /srv && cd /srv | ||
+ | |||
+ | 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=" | ||
+ | APIBKD_ADDRESS=" | ||
+ | |||
+ | # Utilisé sur le raspi | ||
+ | API_URL=" | ||
+ | # DEBUG : jour fixe | ||
+ | MYDAY=" | ||
+ | |||
+ | DELAYSLEEP=60 | ||
+ | |||
+ | </ | ||
===== Comment ça marche ? ===== | ===== Comment ça marche ? ===== | ||
Ligne 58: | Ligne 155: | ||
- le fichier / | - le fichier / | ||
- | Voir procédure technique : [[https:// | + | Voir [[: |
==== Déroulement des étapes sur le raspberry rpi1 ==== | ==== Déroulement des étapes sur le raspberry rpi1 ==== | ||
Ligne 77: | Ligne 174: | ||
< | < | ||
- | systemctl stop rs # service qui diffuse | + | systemctl stop rs # service qui lance le diaporama |
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' | + | 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 | # 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 " | 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 : | ||
+ | |||
+ | * 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. | ||
+ | |||
+ | < | ||
+ | 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. | ||