Aller au contenu

Mode mur

/wall montre le tableau propre à la console, en plein écran, pour un moniteur qui reste allumé dans une salle. Il se rafraîchit seul et garde l’écran éveillé.

De haut en bas :

  • le verdict en quelques mots (« Tout va bien », « 3 problèmes ») avec la date et l’horloge, et l’heure de la dernière mise à jour ;
  • les cinq chiffres de l’aperçu : moniteurs actifs, disponibilité sur 30 jours, temps de réponse p95, alertes ouvertes et temps moyen de résolution ;
  • la rivière de santé, la grande image du tableau : une bande par moniteur, les pires en haut ;
  • les alertes ouvertes, les plus graves d’abord ;
  • qui est d’astreinte maintenant, avec le planning et la fin de la garde.

Pas de widgets : fond noir (décor facultatif ci-dessous), la typographie de la console, des états écrits à côté d’une forme et jamais indiqués par la seule couleur. La musique, une fois réglée, se loge dans un petit dock au pied de la colonne de droite.

Ouvrez-le avec l’icône Mode mur en bas du menu de gauche, depuis la palette de commandes (« Mode mur ») ou en tapant l’URL. ++esc++ ou Quitter retourne à la console. Un compte limité à certaines équipes ou à certains clients n’a pas le mur, puisqu’il montre toute la flotte.

Le mur partage l’apparence sombre de la console. Le bouton Décor (en haut à droite, à côté de Quitter) peut dessiner l’une des villes de nuit des pages de statut derrière le verdict et l’horloge : Paris, New York, Tokyo ou Dubaï, ou Auto pour la plus proche du fuseau horaire du navigateur. Il est désactivé par défaut et mémorisé par navigateur ; ?city=paris (ou newyork, tokyo, dubai, none) dans un lien le choisit pour cet écran seulement. Le ciel suit le tableau : des étoiles quand tout va bien, des nuages sur un avis, un orage sur un avertissement. Sur un téléphone, ou quand l’onglet est masqué, la ville reste immobile. Un zermatt enregistré ou dans un lien arrive désormais sur Dubaï.

Le mur peut aussi jouer de la musique et montrer ce qui joue, pour que vous puissiez lancer une playlist depuis votre téléphone, l’entendre depuis la TV, et la voir depuis l’autre bout de la pièce. La musique se loge dans un petit dock au pied de la colonne de droite, sous l’horloge et l’astreinte : elle ne prend jamais de place au verdict ni aux problèmes, et disparaît quand rien ne joue ou que rien n’est réglé. Elle montre la pochette, le titre, l’artiste, l’appareil qui joue et une fine barre de progression ; quand le compte relié le permet, un bouton lecture / pause met en pause ou reprend la lecture du compte, où qu’elle ait lieu (toute session connectée le peut, comptes lecteurs compris, comme pour Lire ici). Le lecteur d’un lien partagé et les messages du haut-parleur se replient en une petite pastille (l’affichage s’en souvient). Le bouton Musique du mur, à côté de Décor et Quitter, apparaît une fois la musique réglée.

Il y a deux façons, et vous pouvez utiliser les deux.

Spotify ConnectUn lien envoyé aux murs
Démarré depuisl’application Spotify sur votre téléphone (Appareils → DumbMonit Wall)n’importe quel écran DumbMonit, votre téléphone inclus (Jouer sur le mur)
ServicesSpotifySpotify, Deezer, YouTube et YouTube Music
A besoin deSpotify Premium, une application Spotify Developer qui vous est propre, le téléphone sur le même compte Spotify, le mur servi en HTTPS (ou localhost) dans un navigateur avec DRMrien ; sans être connecté sur le mur, Spotify et Deezer jouent des aperçus de 30 secondes
Montre ce qui joueoui, où que ça joue : le mur, l’application Spotify d’une TV, un haut-parleur castle propre lecteur du service

Connecter Spotify et envoyer des liens sont des actions d’administrateur ; un compte lecteur sur le mur joue et montre tout.

L’objectif : sur votre téléphone, ouvrez Spotify, touchez l’icône des appareils, choisissez la TV — la musique joue sur la TV tandis que le mur montre ce qui joue. Le mur fait ça avec le Web Playback SDK de Spotify : le navigateur du mur s’enregistre comme un appareil Spotify Connect. Ça ne fonctionne que quand toutes ces conditions tiennent, et le mur vous dit sur son propre écran laquelle manque :

A besoin dePourquoiQuand ça manque
Spotify Premium sur le compte connectéSpotify ne laisse que les comptes Premium utiliser des haut-parleurs navigateurle mur montre Spotify Premium is required ; Réglages montre Premium : Non
Le téléphone connecté au même compte Spotifyun haut-parleur navigateur n’est listé que pour le compte dont il détient le jeton — il n’est pas découvert sur le réseau comme un haut-parleur intelligent, et les autres membres d’un plan Family ne le voient pasle téléphone ne liste simplement pas le mur
HTTPS (ou http://localhost sur l’affichage lui-même)les navigateurs n’autorisent les médias protégés (DRM) que dans une page sécuriséele mur montre opened over plain HTTP
Un navigateur dont le DRM fonctionne (Widevine, PlayReady ou FairPlay)Spotify diffuse de l’audio chiffréle mur montre This browser cannot play Spotify
Un appui ou une pression de touche sur le mur par chargement de pageles navigateurs gardent une page silencieuse jusqu’à ce que quelqu’un interagisse avec ellele mur montre Tap to enable sound

Quels navigateurs fonctionnent : Chrome, Edge et Firefox sur un ordinateur (Firefox : autorisez Play DRM-controlled content), Safari sur un Mac, Chromium avec Widevine sur un Raspberry Pi (libwidevinecdm0). La plupart des navigateurs de smart-TV (Samsung Tizen, LG webOS), des navigateurs kiosque et beaucoup de builds Chromium Linux sont livrés sans Widevine utilisable : ils ne peuvent pas être un haut-parleur Spotify, quoi que fasse DumbMonit. Pour une telle TV, voir Quand le navigateur de la TV ne peut pas jouer Spotify.

  1. Créez une application Spotify. Ouvrez le Spotify Developer Dashboard, créez une application (n’importe quel nom), cochez Web API et Web Playback SDK, et ajoutez l’URI de redirection que Réglages → Musique du mur montre :
    • DumbMonit servi en HTTPS : https://<votre adresse>/api/music/spotify/callback. Spotify revient directement sur DumbMonit après votre approbation.
    • DumbMonit servi en HTTP simple : http://127.0.0.1:8888/callback. Spotify n’accepte http:// que pour une adresse loopback (et pas localhost), depuis 2025. Rien ne répond à cette adresse : après votre approbation, votre navigateur montre une page d’erreur dont l’adresse porte le code — copiez-le et collez-le dans DumbMonit.
  2. Connectez. Dans Réglages → Musique du mur, collez le Client ID de l’application (il n’y a pas de secret : DumbMonit utilise Authorization Code avec PKCE) et choisissez Connecter Spotify, puis approuvez sur Spotify avec le compte que votre téléphone utilise.
  3. Sur la TV, ouvrez le /wall de DumbMonit en HTTPS, connecté (un compte lecteur suffit), et touchez l’écran ou appuyez sur OK sur la télécommande une fois : n’importe quel geste débloque le son. Un navigateur démarré avec --autoplay-policy=no-user-gesture-required (un kiosque) n’a besoin d’aucun appui.
  4. Sur votre téléphone, dans l’application Spotify, touchez l’icône des appareils et choisissez DumbMonit Wall. Le son sort de la TV, et le mur montre la pochette, le titre et la progression.

Réglages → Musique du mur → Haut-parleur montre si tout tient, sans marcher jusqu’à la TV : le compte, Premium, si Spotify liste le haut-parleur parmi les appareils du compte en ce moment (et quels appareils il liste), et chaque mur qui s’est signalé dans les quinze dernières minutes — son navigateur (« Chrome 130 sur Linux »), s’il est prêt, et pourquoi pas sinon. Tester le son fait jouer le compte sur le haut-parleur (il reprend ce qui jouait en dernier) ; chaque mur prêt a aussi son propre Tester le son. Sur le mur lui-même, le panneau Musique a Jouer ici, qui déplace ce qui joue sur le compte vers cet affichage.

Le nom. Renommez le haut-parleur dans Réglages → Musique du mur → Haut-parleur (« TV du salon ») ; chaque mur reprend le nouveau nom en quelques secondes. Pour nommer un seul mur, ajoutez ?speaker=Cuisine à son adresse — l’affichage s’en souvient (?speaker= l’oublie).

Un mur reste allumé pendant des jours. Le mur demande à DumbMonit un jeton frais quand celui de Spotify expire (chaque heure) ; quand l’appareil se déconnecte (Wi-Fi, une carte réseau qui dort) et ne revient pas en trente secondes, le mur s’enregistre à nouveau ; un échec passager est retenté de lui-même (15 s, 30 s, … puis toutes les cinq minutes) ; et si Spotify arrête de lister le mur alors qu’il se croit prêt, il s’enregistre à nouveau. Seul ce que l’attente ne peut pas réparer — pas de DRM, pas de Premium — s’arrête pour de bon, jusqu’à Réessayer.

DumbMonit garde le jeton de rafraîchissement Spotify chiffré avec le secret de l’instance et ne l’envoie jamais à un navigateur. Le mur ne reçoit qu’un jeton d’accès de courte durée pour son lecteur, et seulement via une session connectée (un jeton d’API ne peut pas en obtenir un). Déconnecter oublie le compte ; pour aussi retirer DumbMonit de votre compte Spotify, utilisez spotify.com/account/apps.

Bon à savoir aussi :

  • Une application Spotify personnelle (development mode) appartient à un compte Premium et admet jusqu’à cinq comptes : ajoutez les autres sous User Management dans le tableau de bord.
  • Reconnectez tous les six mois. Spotify termine une connexion six mois après son approbation ; Réglages montre la date, et le mur le dit quand ça arrive.

« En cours de lecture » fonctionne sans rien de tout ça. Le serveur de DumbMonit demande à Spotify ce qui joue sur le compte toutes les quelques secondes (une requête pour tous les murs) et le mur montre la pochette, le titre, l’artiste, la progression et l’appareil sur lequel ça joue — le mur lui-même, l’application Spotify d’une smart TV, un Chromecast, votre ordinateur portable — même en HTTP simple et dans un navigateur qui ne peut pas jouer Spotify. Pour utiliser seulement ça, désactivez Utiliser cet affichage comme haut-parleur Spotify dans le panneau Musique du mur.

Quand le navigateur de la TV ne peut pas jouer Spotify

Section intitulée « Quand le navigateur de la TV ne peut pas jouer Spotify »

Choisissez ce qui correspond à votre installation — dans chaque cas le mur continue de montrer ce qui joue, parce que en cours de lecture lit le compte, pas le haut-parleur :

  • La TV a une application Spotify, ou un Chromecast / Google TV / Fire TV stick. Choisissez-le dans la liste d’appareils de Spotify ; le mur montre « Joue sur TV du salon ». C’est l’option la plus simple et la plus fiable.
  • Un petit ordinateur pilote la TV (un Raspberry Pi, un mini PC, un vieil ordinateur portable). Ouvrez le mur dans Chrome ou Chromium avec Widevine dessus : il devient le haut-parleur comme décrit plus haut.
  • Vous voulez un haut-parleur toujours présent, même sans navigateur. Lancez un récepteur Spotify Connect basé sur librespot (MIT) — par exemple raspotify ou spotifyd — sur la machine dont la sortie audio atteint la TV ou le haut-parleur. Il apparaît dans la liste d’appareils du téléphone pour tout le monde sur le réseau.

DumbMonit ne fournit pas un tel récepteur lui-même, volontairement : le conteneur DumbMonit tourne généralement sur un serveur dans un placard, pas sur la machine branchée à la TV, son son sortirait donc de la mauvaise boîte ; un récepteur a besoin de la carte son de l’hôte et du réseau hôte (mDNS) qu’un conteneur de surveillance ne devrait pas avoir ; et librespot dépend de protocoles Spotify non officiels qui cassent de temps en temps. Un récepteur installé sur la bonne machine, à côté de DumbMonit, fait mieux le travail.

Dans Réglages → Musique du mur (ou le propre panneau Musique du mur), collez un lien Spotify, Deezer ou YouTube vers un titre, un album, une playlist, un épisode ou une vidéo et choisissez Jouer sur le mur. Chaque mur le joue dans le lecteur embarqué officiel du service ; un lien envoyé pendant qu’un mur est ouvert démarre de lui-même là où le service le permet (YouTube, Deezer) une fois le mur touché. Arrêter le retire de chaque mur.

Deezer et YouTube n’ont pas d’équivalent Spotify Connect qu’une page web puisse utiliser — Deezer n’accepte plus de nouvelles applications développeur et son API n’a jamais exposé ce qui joue — un lien est donc la voie pour eux. Les lecteurs embarqués jouent des aperçus de 30 secondes sauf si le navigateur du mur est connecté au service.

Rien de tiers ne se charge sur le mur jusqu’à ce que Spotify soit connecté ou qu’un lien soit réglé. La politique de sécurité du contenu de la page autorise exactement les trois lecteurs embarqués, le script de lecteur de Spotify (sdk.scdn.co/spotify-player.js) et sa frame, et couvre depuis i.scdn.co — rien d’autre, et rien hors de l’interface web.

La politique des fonctions du navigateur (Permissions-Policy) de l’interface ne prête la lecture automatique et les médias protégés (DRM) qu’à ces lecteurs ; les pages de statut publiques n’en reçoivent aucun.

RouteQuiQuoi
GET /api/music/nowtoute session ou jetonCe qui joue sur le compte Spotify (mis en cache quelques secondes) et le lien que les murs jouent
PUT /api/music/link {"link": "…"}adminChaque mur joue ce lien
DELETE /api/music/linkadminLes murs arrêtent le lecteur embarqué
GET /api/music/spotifytoute session ou jetonLe compte connecté : statut, Client ID, date de reconnexion — jamais un jeton
POST /api/music/spotify/authorizesession adminDémarre une connexion : {"client_id", "redirect_uri"} → l’URL d’approbation de Spotify
POST /api/music/spotify/complete {"url": "…"}session adminTermine une connexion loopback avec l’adresse sur laquelle le navigateur a atterri
GET /api/music/spotify/callbackle navigateur de l’adminLa redirection directe de Spotify (installations HTTPS) : rend le code à la page des réglages, qui termine la connexion avec sa session
DELETE /api/music/spotifyadminDéconnecte et oublie les jetons
GET /api/music/spotify/tokensession navigateur seulementUn jeton d’accès de courte durée pour le lecteur du mur
GET /api/music/speakertoute session ou jetonLe haut-parleur : nom, Premium, les appareils Spotify Connect du compte, si le haut-parleur est listé, ce que chaque mur a rapporté
PUT /api/music/speaker {"name": "…"}adminRenomme le haut-parleur (null revient à « DumbMonit Wall »)
POST /api/music/speaker/reportsession navigateur seulementUn mur rapporte son haut-parleur (envoyé chaque minute) ; la réponse dit si Spotify le liste
POST /api/music/speaker/play {"device_id": "…"}session navigateur seulementJoue le compte sur cet appareil, ou sur l’appareil nommé comme le haut-parleur (« Tester le son », « Jouer ici »)
POST /api/music/spotify/playback {"playing": false}session navigateur seulementMet en pause (false) ou reprend (true) la lecture du compte, où qu’elle ait lieu ; can_control dans GET /api/music/now dit si c’est permis