Un écran d'informations intelligent, optimisé pour une utilisation au tactile, et prêt à intégrer une multitude d'outils.
Ce projet a pour but d'afficher de multiples informations sur un écran tactile qui est constamment allumé. Il permet par exemple de gérer sa domotique ou de recevoir des notifications de certains services, pour être au courant qu'un cours s'apprête à commencer via Pronote par exemple.
- Notification "Heure du BeReal" (@oriionn)
- Pronote (Papillon API)
- Spotify (NowPlaying)
- Étendre un écran de PC (Deskreen)
- Home Assistant
- Météo (WeatherAPI)
- Affichage de la batterie du PC sous Linux quand elle est faible
- Changement de la luminosité en fonction de l'éclairage via la webcam
- Personnalisation via une API ouverte
Certaines fonctionnalités peuvent ne pas fonctionner sous Windows ou macOS. Testé avec Debian 12.
L'installation nécessite Git, NodeJS (version récente), NPM et PM2.
# Installation d'InfoScreen
git clone https://github.com/johan-perso/infoscreen
cd infoscreen
npm install
# Démarrage
npm run start
# Pour laisser le projet tourner en arrière-plan, vous pouvez utiliser PM2
# pm2 start "npm run start" --name InfoScreen
# Pour la première utilisation de PM2, exécuter également ces commandes
# pm2 startup
# pm2 save
# Vous pourrez ensuite le fermer avec
# pm2 stop InfoScreen
# pm2 save
Renommer le fichier .env.example
en .env
et modifier les valeurs présentes. Certaines fonctionnalités seront désactivées si aucune valeur ne leur est définie.
Dépendances :
- Commande
brightnessctl
installée - Paquet
fswebcam
sous Linux,imagesnap
sous macOS
Configurer la variable d'environnement VIDEO_DEVICE
par le chemin de votre webcam et SCREEN_DEVICE
par le nom de votre écran :
- Pour obtenir le nom de votre webcam, vous pouvez utiliser la commande
v4l2-ctl --list-devices
. - Pour obtenir le nom de votre écran, vous pouvez utiliser la commande
brightnessctl -l
. Vous pouvez tester un changement avecbrightnessctl -d "le nom de votre écran" set 50%
Lorsque la surveillance est activée, la luminosité automatique renverra une erreur fréquemment dans la console et ne pourra pas fonctionner correctement.
- Télécharger l'archive la plus récente de cam2ip via leur GitHub
- Extraire l'exécutable
cam2ip
présent dans l'archive dans un dossier de votre choix. - Configurer la commande à utiliser pour ouvrir un flux vidéo via le fichier .env :
CAMERA_COMMAND="/home/your_username/cam2ip/cam2ip -htpasswd-file /home/your_username/cam2ip/htpasswd -index 0"
Le fichier htpasswd est facultatif mais permet une authentification lors de la connexion au flux vidéo.
Pour connecter Home Assistant à votre flux vidéo, ouvrez les réglages et ajoutez une nouvelle intégration "MJPEG IP Camera"
Cette fonctionnalité permet de vous envoyer des notifications une heure avant le début de chaque cours, mais aussi d'afficher une barre de progression sur l'écran vous permettant d'estimer le temps avant que le cours commence.
L'emploi du temps est obtenu chaque nuit à quatre heures du matin et ne prendra pas en compte les modifications effectuées pendant la journée.
À l'heure actuel, le serveur d'API Papillon n'est plus disponible, vous pouvez utiliser l'URL https://papillon-api.johanstick.fr
en attendant une prochaine mise à jour d'InfoScreen.
La variable PRONOTE_CAS
vous permet de vous connecter à Pronote via un CAS, laissez vide ou entrer une valeur à partir de cette liste.
Si aucune valeur n'est définie pour SPOTIFY_MINIPLAYER
et HA_DASHBOARD
, les fonctionnalités correspondantes seront désactivées. Les informations essentielles (heure, date, météo, barre de progression via Pronote) seront affichées en plein écran après vingt secondes.
InfoScreen ouvre un serveur WEB avec une API sur le port 3000
(modifiable avec la variable d'env PORT
), celui-ci vous permet d'effectuer diverses actions sur votre écran afin d'étendre ses fonctionnalités et intégrations.
- Vous pouvez créer des automatisations sur Home Assistant :
- Activation/désactivation de la webcam
- Activation/désactivation de l'écran
- Mettre à jour la luminosité dès qu'une lumière change d'état
- Vous pouvez créer des raccourcis (avec Raccourcis sur iOS ou Automate sur Android) :
- Allumer/éteindre l'écran lorsque vous vous en éloignez/rapprochez
- Afficher les SMS d'authentifications à deux facteurs
- Vous informez du niveau de batterie de votre téléphone
- Vous prévenir lors d'un appel entrant ou du déclenchement d'une alarme
- Vous pouvez développer un robot Telegram pour :
- Afficher ou enlever une page web sur l'écran, pour étendre un moniteur avec Deskreen par exemple
Active ou désactive la vérification automatique de la luminosité via la webcam
Query :
state
: boolean
Change l'état de la surveillance via la webcam, peut provoquer des problèmes avec la détection de la luminosité
Query :
state
: boolean
Revérifie la luminosité via la webcam si la vérification automatique est active
Affiche une page web en plein écran, les URLs Deskreen seront automatiquement améliorées pour une meilleure intégration
Body :
url
: string, ou rien pour fermer la page
Envoie une notification personnalisée sur l'écran
Body :
title
: stringcontent
: stringiconPath
: stringtimeout
: int
Si le problème que vous rencontrez n'est pas listé ici, ouvrez une issue sur ce dépôt ou contactez moi.
Exécuter la commande sudo xhost +
pour permettre l'ouverture d'une fenêtre sur votre écran. Dans certaines configurations, vous devrez peut-être exécuter la commande depuis l'appareil lui-même et non via SSH.
Pour permettre à InfoScreen d'obtenir le niveau de la batterie de votre appareil, assurez-vous d'avoir installé le paquet "upower" sous Debian (ou autres distributions basées).
MIT © Johan. Soutenez ce projet via Ko-Fi ou PayPal si vous souhaitez m'aider 💙