📋 Documentation Raspy2DMD

Documentation complète de toutes les trames MQTT disponibles

À propos de Raspy2DMD

Canal MQTT

raspy2dmd

Format des trames

<action>|<param1>|<param2>|...

Les valeurs entre crochets [] sont optionnelles

Canal de réponse MQTT (pour toutes les trames)

raspy2dmd/response

SUCCESS|action|message
ERROR|action|message

Structure de la documentation

  1. Système - Gestion du système (redémarrage, arrêt, exclusions)
  2. Configuration - Modification et rechargement de la configuration
  3. Affichage Texte - Messages, défilements, carrousels
  4. Images & GIFs - Affichage de médias graphiques
  5. Automatique - Affichages textes, temporels et animations d'attente
  6. Météo - Informations météorologiques et systèmes EDF
  7. Performance - Visualisation des informations du Raspberry Pi
  8. Son & Effets - Gestion audio et effets visuels
  9. Divers - Actions hors catégorie ☺
  10. Jeux - Jeux jouables depuis le navigateur

Démarrage rapide

Premiers pas

Pour envoyer une commande MQTT, utilisez la commande mosquitto_pub :

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|HELLO WORLD"

Exemples simples

# Afficher un message : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|Bienvenue"
# Afficher un GIF 3 fois de suite : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gif|celebration.gif|3"
# Jouer un son : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "sound|beep.ogg"

⚠️ Important : L'attract mode s'interrompt automatiquement lorsqu'une commande d'affichage est reçue, puis reprend sa boucle après un temps défini.

La plupart des commandes d'affichage stoppent l'attract mode avant de s'exécuter pour éviter les conflits.

Exceptions :

Commandes système (rebt, shutdwn)
Configuration (conf, rldconf)
Son (sound)

1️⃣ Système - rebt

rebt - Redémarrer le système

Format

rebt|

Description

Redémarre complètement le Raspberry Pi

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rebt|"

1️⃣ Système - shutdwn

shutdwn - Éteindre le système

Format

shutdwn|

Description

Éteint complètement le Raspberry Pi

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "shutdwn|"

1️⃣ Système - excludeFolder

excludeFolder - Exclure un dossier

Format

excludeFolder|<nom_dossier>|<chemin>

Paramètres

  • nom_dossier : Nom du dossier à exclure
  • chemin : Chemin complet du dossier

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "excludeFolder|Test|/Medias/Gifs/Test"

Notes

  • Exclut un dossier des recherches aléatoires

1️⃣ Système - excludeFile

excludeFile - Exclure un fichier

Format

excludeFile|<nom_fichier>|<chemin>

Paramètres

  • nom_fichier : Nom du fichier à exclure
  • chemin : Chemin complet du fichier

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "excludeFile|bad.gif|/Medias/Gifs/bad.gif"

Notes

  • Exclut un fichier des recherches aléatoires

2️⃣ Configuration - conf

conf - Modifier la configuration

Format

conf|<section>|<param1>:<valeur1>|<param2>:<valeur2>|...

Paramètres

  • section : DMDRenderer, TextRenderer, ClockRenderer, Running, OpenWeatherMap, Sound, Directory, Snake, Pong, FlyBird, Des
  • param : Nom du paramètre à modifier
  • valeur : Nouvelle valeur

Exemples

# Modifier la luminosité qu'importe l'heure à 70% : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|DMDRenderer|brightness:70"
# Modifier la luminosité en fonction de l'heure (de 00h à 23h) : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|DMDRenderer|brightnesshours:10,10,10,10,10,10,10,20,20,50,50,50,50,50,50,50,50,50,50,20,20,20,10,10"
# Modifier volume à 80% : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|Sound|volume:80|output:hdmi"
# Modifier la durée avant le déclenchement de l'attract mode à 15 secondes : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|Running|attract_mode:15"
# Configuration FlyBird - Modifier la gravité et la force de saut : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|FlyBird|gravity:0.1|jump_strength:-0.8"
# Configuration FlyBird - Changer la difficulté en mode Hard : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|FlyBird|difficulty:hard|pipe_gap:14|pipe_spacing:35"
# Configuration Snake - Activer les power-ups et obstacles : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|Snake|powerups:1|obstacles:1"
# Configuration Pong - Modifier la vitesse de la balle et la difficulté CPU : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "conf|Pong|ballspeed:3|difficulty:expert"

Notes

  • Recharge automatiquement le renderer
  • Affiche un message "OK" quand le paramètre est bien pris en compte (sauf pour brightness)
  • Joue un son si volume ou output modifiés

2️⃣ Configuration - rldconf

rldconf - Recharger la configuration

Format

rldconf|

Description

Recharge la configuration depuis le fichier

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rldconf|"

Notes

  • Recharge automatiquement le renderer

2️⃣ Configuration - receipconf

receipconf - Recevoir la configuration de Raspy2DMD

Format

receipconf|

Description

Envoie la configuration actuelle

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "receipconf|"

3️⃣ Affichage Texte - msg

msg - Afficher un message
Stop l'attract mode avant affichage

Format

msg|<texte>|[sens]|[itérations]

Paramètres

  • texte : Texte à afficher
  • sens : left, right, up, down (optionnel)
  • itérations : Nombre de répétitions (optionnel)

Exemples

# Message simple : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|HELLO WORLD"
# Message qui défile vers la gauche : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|WELCOME|left"
# Message répété 3 fois : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|SCORE: 180|left|3"
# Message dont le sens a été oublié : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|SCORE: 180||3"
# Message dont le sens et l'itération ont été oublié : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|SCORE: 180||"

Notes

  • Si le paramètre sens est omis, le message s'affichera de façon fixe
  • Police définie dans la configuration
  • Texte vide affiche "-Vide-"

Rendu

Exemple matrice LED
Exemple d'affichage du texte "TEST" (police et couleur définies dans le paramétrage)
mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg|TEST"

3️⃣ Affichage Texte - msgXX

msgXX - Afficher un message avec une police et couleur préconfigurée
Stop l'attract mode avant affichage

Format

msg01|<texte>|[sens]|[itérations]|[gif]|[son]
msg02|<texte>|[sens]|[itérations]|[gif]|[son]
...
msg99|<texte>|[sens]|[itérations]|[gif]|[son]

Paramètres

  • msgXX : msg01 à msg99 (nom de la police .ttf)
  • texte : Texte à afficher
  • sens : left, right, up, down (optionnel)
  • itérations : Nombre de répétitions (optionnel)
  • gif : Affiche ou non le GIF associé s'il en existe un (0 ou 1 — 1 par défaut) (optionnel)
  • son : Joue ou non le son associé s'il en existe un (0 ou 1 — 1 par défaut) (optionnel)

Exemples

# Message personnalisé 1 : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg1|GAME OVER"
# Message personnalisé 3 avec défilement : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg03|WINNER|up"
# Message personnalisé 4 et non affichage du gif du message : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg04|BOUUUUH|||0"
# Message personnalisé 5 avec défilement et 5 fois de suite : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg05|WINNER|right|5"
# Message personnalisé 6 et affichage du gif du message et pas de son : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg06|Super!|||1|0"
# Message personnalisé 7 et non affichage du gif du message et pas de son : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg07|Génial!|||0|0"

Notes

  • Doit être paramétré dans la page "Message Personnalisé"

Rendu

Exemple matrice LED
Exemple d'affichage du texte "TEST" configuré
mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msg01|TEST"

1️⃣ 0️⃣ Affichage Texte - msgmove

msgmove - Message avec défilement
Stop l'attract mode avant affichage

Format

msgmove|<texte>|<sens>

Paramètres

  • texte : Texte à afficher
  • sens : left, right, up, down (obligatoire)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgmove|BREAKING NEWS|right"

Notes

  • Le sens est obligatoire

1️⃣ 0️⃣ Affichage Texte - msgmovebcl

msgmovebcl - Message avec boucle de défilement
Stop l'attract mode avant affichage

Format

msgmovebcl|<texte>|<sens>|<itérations>

Paramètres

  • texte : Texte à afficher
  • sens : left, right, up, down
  • itérations : Nombre d'itérations

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgmovebcl|PROMO|left|3"

Notes

  • Le sens ET l'itération sont obligatoires

5️⃣ Automatique - msgcarrou

msgcarrou - Carrousel de messages
Stop l'attract mode avant affichage

Format

msgcarrou|<start/stop>

Paramètres

  • start/stop : start (ou stop)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcarrou|start"

Notes

  • Affiche les messages du dossier /Medias/Textes de façon aléatoire, à tour de rôle

3️⃣ Affichage Texte - msgcolor

msgcolor - Message avec couleur personnalisée
Stop l'attract mode avant affichage

Format

msgcolor|<texte>|<R;G;B>|<R;G;B>|[sens]|[itérations]

Paramètres

  • texte : Texte à afficher
  • R;G;B : Couleur RGB (0-255 pour chaque) pour le texte
  • R;G;B : Couleur RGB (0-255 pour chaque) pour le fond
  • sens : left, right, up, down (optionnel)
  • itérations : Nombre de répétitions (optionnel)

Exemples

# Message rouge avec fond blanc : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcolor|DANGER|255;0;0|255;255;255"
# Message vert avec fond noir qui défile vers la gauche : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcolor|SUCCESS|0;255;0|0;0;0|left"
# Message vert avec fond noir qui défile vers le haut et 3 fois : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcolor|SUCCESS|0;255;0|0;0;0|up|3"

Notes

  • Format couleur message : R;G;B avec valeurs 0-255
  • Format couleur fond : R;G;B avec valeurs 0-255

Rendu

Exemple matrice LED
Exemple d'affichage du texte "TEST" en rouge avec le fond bleu (police définie dans le paramétrage)
mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcolor|TEST|255;0;0|0;0;255"

3️⃣ Affichage Texte - msgimg

msgimg - Message superposé avec une image
Stop l'attract mode avant affichage

Format

msgimg|<texte>|<image.png>|[sens]|[itérations]

Paramètres

  • texte : Texte à afficher
  • image : Nom du fichier image de fond (Chemin complet vers le fichier voulu)
  • sens : left, right, up, down (optionnel)
  • itérations : Nombre de répétitions (optionnel)

Exemples

# Message avec comme "couleur" le fichier '/home/pi/MesPatterns/Pattern1.png' : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgimg|WINNER|/home/pi/MesPatterns/Pattern1.png"
# Message avec comme "couleur" le fichier '/Medias/Patterns/OldGame.png' vers la gauche : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgimg|SUCCESS|/Medias/Patterns/OldGame.png|left"
# Message avec comme "couleur" le fichier '/Medias/Patterns/OldGame.png' vers le bas et 2 fois : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgimg|LOSER|OldGame.png|down|2"

Notes

  • Les images utilisées comme texture de fond doivent être dans /Medias/Fonts
  • Texte superposé sur l'image

Rendu

Exemple matrice LED
Exemple d'affichage du texte "TEST" avec l'image "/Medias/Patterns/OldGame.png" (police définie dans le paramétrage)
mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgimg|TEST|/Medias/Patterns/OldGame.png"

3️⃣ Affichage Texte - msgcst

msgcst - Message personnalisé complet
Stop l'attract mode avant affichage

Format

msgcst|<texte>|<police.ttf>|<R;G;B>|<R;G;B>|[sens]|[itérations]

Paramètres

  • texte : Texte à afficher
  • police : Nom du fichier de police
  • R;G;B : Couleur RGB message
  • R;G;B : Couleur RGB fond
  • sens : left, right, up, down (optionnel)
  • itérations : Nombre de répétitions (optionnel)

Exemple

# Message avec police d'écriture, couleur du message et couleur du fond : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcst|VICTORY|Impact.ttf|255;0;0|255;215;0"
# Message avec police d'écriture, couleur du message, couleur du fond, défilement vers la gauche et 5 fois : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcst|VICTORY|Impact.ttf|255;0;0|255;215;0|left|5"
# Message avec police d'écriture, couleur du message, couleur du fond, défilement vers la gauche : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgcst|SUCCESS|Impact.ttf|0;255;0|0;0;0|left"

Notes

  • La police d'écriture doit être dans le dossier /Medias/Fonts
  • Combine tous les paramètres de personnalisation

Rendu

Exemple matrice LED
Exemple d'affichage du texte "TEST" avec une police choisie et une couleur d'écriture et de fond"
mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgimg|TEST|Magnetob.ttf|0;255;0|0;0;0"

3️⃣ Affichage Texte - msgfull

msgfull - Message complet avec tous les paramètres
Stop l'attract mode avant affichage

Format

msgfull|<texte>|[police.ttf]|[R;G;B texte]|[R;G;B fond]|[pattern]|[gif de fond]|[son]|[sens]|[itérations]

Paramètres

  • texte : Texte à afficher (obligatoire)
  • police.ttf : Nom du fichier de police dans /Medias/Fonts/ (optionnel)
  • R;G;B texte : Couleur du texte en RGB, séparateur ; ou , (optionnel)
  • R;G;B fond : Couleur du fond en RGB (optionnel, ignoré si pattern ou gif fourni)
  • pattern : Nom ou chemin du pattern de fond dans /Medias/Patterns/ (optionnel, priorité sur fond couleur)
  • gif de fond : Nom ou chemin du GIF de fond dans /Medias/Gifs/ (optionnel, priorité sur pattern et fond couleur)
  • son : Nom ou chemin du fichier son dans /Medias/Sounds/ (optionnel)
  • sens : gAD, dAG, hEB, bEH, ROT, ARO, FLI, TWI, fix (optionnel)
  • itérations : Nombre de répétitions (optionnel, défaut : valeur configuration)

Règles de priorité pour le fond : gif de fond > pattern > couleur de fond

Les paramètres optionnels peuvent être omis ou laissés vides (chaîne vide) pour utiliser la valeur par défaut.

Les chemins relatifs sont automatiquement résolus depuis les dossiers /Medias correspondants.

Exemples

# Texte simple avec police et couleurs : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgfull|BRAVO|Impact.ttf|255;215;0|0;0;0"

# Texte avec police, couleur et pattern de fond : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgfull|WINNER|Impact.ttf|255;255;255|||OldGame.png"

# Texte avec GIF de fond et son : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgfull|JACKPOT|Impact.ttf|255;215;0||||explosion.gif|win.wav"

# Texte avec toutes les options : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgfull|VICTORY|Impact.ttf|255;0;0|0;0;0|||explosion.gif|win.wav|gAD|3"

# Texte minimal (valeurs par défaut pour tout) : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "msgfull|Hello World"

Notes

  • Les fichiers de police, pattern, GIF et son peuvent être des noms de fichiers relatifs ou des chemins absolus
  • Si un GIF de fond est fourni, le pattern et la couleur de fond sont ignorés
  • Si un pattern est fourni, la couleur de fond est ignorée
  • Cette trame est utilisée par le Calendrier d'événements pour la prévisualisation sur le DMD

9️⃣ Affichage Score - score

score - Afficher un score
Stop l'attract mode avant affichage

Format

score|<X - X - X>|[durée]

Paramètres

  • valeur : Score à afficher (ex: "T20 - D2 - X")
  • durée : Durée d'affichage en secondes (optionnel)

Exemples

# Score 1ère fléchette : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "score|D2 - X - X"
# Scores 2ème fléchette : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "score|D2 - T20 - X"
# Scores 3ème fléchette : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "score|D2 - T20 - S1"

Notes

  • Format spécial pour affichage de scores de RaspyDarts

4️⃣ Images & GIFs - img

img - Afficher une image
Stop l'attract mode avant affichage

Format

img|<fichier.png>|[durée]|[fallback]|[extensions]

Paramètres

  • fichier : Nom du fichier image
  • durée : Durée d'affichage en secondes (0 = durée illimitée) (optionnel)
  • fallback : Image de secours si introuvable ('' = vide si pas d'image) (optionnel)
  • extensions : Extensions à essayer, séparées par virgules (optionnel)

Exemples

# Image simple : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "img|logo.png"
# Image avec durée d'affichage de 5 secondes : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "img|banner.png|5"
# Image avec durée d'affichage de 3 secondes et image de secours si introuvable : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "img|special.png|3|default.png"
# Image sans connaitre son extension en proposant les extensions multiples : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "img|logo|0||.png,.PNG,.jpg,.jpeg"

Notes

  • Cherche dans /Medias/Images/
  • Supporte les extensions multiples
  • Image de secours si image introuvable

4️⃣ Images & GIFs - gif

gif - Afficher un GIF animé
Stop l'attract mode avant affichage

Format

gif|<fichier.gif>|[itérations]|[fallback.gif]|[extensions]

Paramètres

  • fichier : Nom du fichier GIF
  • itérations : Nombre de lectures (0 = pas de limite) (optionnel)
  • fallback : GIF de secours si introuvable ('' = vide si pas de gif) (optionnel)
  • extensions : Extensions à essayer, séparées par virgules (optionnel)

Exemples

# GIF lecture simple : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gif|celebration.gif"
# GIF lecture 3 fois : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gif|abobo.gif|3"
# GIF avec fallback si gif pas trouvé : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gif|special.gif|0|default.gif"
# GIF sans connaitre son extension, avec extensions multiples et sans fallback : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gif|demo|0||.gif,.GIF"

Notes

  • Cherche dans /Medias/Gifs/ ou dans le sous-répertoire indiqué avec le nom du GIF (exemple : 600Gratos/abobo.gif)

4️⃣ Images & GIFs - gifPath

gifPath - GIF avec chemin complet
Stop l'attract mode avant affichage

Format

gifPath|<chemin_complet>|[itérations]

Paramètres

  • chemin_complet : Chemin absolu vers le GIF
  • itérations : Nombre de lectures (optionnel)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gifPath|/Medias/NouveauDossier/animation.gif|3"

Notes

  • Permet d'accéder à des GIFs hors du dossier standard
  • Nécessite le chemin absolu complet

4️⃣ Images & GIFs - gifText

gifText - GIF avec texte superposé
Stop l'attract mode avant affichage

Format

gifText|<fichier.gif>|<texte>|[R;G;B]|[itérations]

Paramètres

  • fichier : Nom du fichier GIF
  • texte : Texte à superposer
  • R;G;B : Couleur du message (couleur par défaut si non renseigné) (optionnel)
  • itérations : Nombre de lectures (optionnel)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "gifText|fireworks.gif|HAPPY NEW YEAR|255;0;255|3"

Notes

  • Combine animation GIF et texte
  • Texte affiché par-dessus l'animation

4️⃣ Images & GIFs - rand

rand - Affichage aléatoire
Stop l'attract mode avant affichage

Format

rand|<type>|[occurrence]|[directory]

Paramètres

  • type : "gif" ou "image"
  • occurrence (optionnel) : nombre de fichiers à afficher (défaut : 1)
  • directory (optionnel) : dossier dans lequel sélectionner aléatoirement
    • Chemin complet : /Medias/Gifs/MonDossier → utilisé tel quel
    • Chemin relatif : /MonDossier ou MonDossier → résolu depuis le répertoire de base du type (ex: /Medias/Gifs/MonDossier)
    • Si le dossier n'existe pas → erreur

Exemples

# GIF aléatoire (tous les dossiers) : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|gif"
# 3 GIFs aléatoires : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|gif|3"
# GIF aléatoire depuis un sous-dossier (chemin relatif) : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|gif|/MonDossier"
# 3 GIFs aléatoires depuis un sous-dossier : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|gif|3|/MonDossier"
# GIF aléatoire depuis un chemin complet : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|gif|/Medias/Gifs/MonDossier"
# Image aléatoire (tous les dossiers) : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|image"
# 3 images aléatoires : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|image|3"
# Image aléatoire depuis un sous-dossier : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|image|/MonDossier"
# 3 images aléatoires depuis un sous-dossier : mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "rand|image|3|/MonDossier"

Notes

  • Respecte les exclusions
  • Les GIFs utilisent un pool sans répétition (chaque GIF est affiché une fois avant de recommencer)
  • Si un dossier est spécifié, le pool de GIFs est mis à jour avec uniquement les fichiers de ce dossier

5️⃣ Automatique - time

time - Afficher l'horloge (date + heure)
Stop l'attract mode avant affichage

Format

time|<start/stop>

Paramètres

  • start/stop : start (ou stop)

Exemples

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "time|start"

Notes

  • Affiche la date et l'heure selon le mode configuré dans la page /horloge
  • Peut être personnalisée via la configuration
date - Afficher uniquement la date
Stop l'attract mode avant affichage

Format

date|<start/stop>

Paramètres

  • start/stop : start (ou stop)

Exemples

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "date|start"

Notes

  • Affiche uniquement la date pendant la durée définie par timeshow_date (page /horloge)
  • Indépendant du mode d'affichage configuré — affiche toujours la date seule
  • Disponible aussi comme élément du carrousel attract mode (code D)
hour - Afficher uniquement l'heure
Stop l'attract mode avant affichage

Format

hour|<start/stop>

Paramètres

  • start/stop : start (ou stop)

Exemples

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "hour|start"

Notes

  • Affiche uniquement l'heure pendant la durée définie par timeshow_hours (page /horloge)
  • Indépendant du mode d'affichage configuré — affiche toujours l'heure seule
  • Disponible aussi comme élément du carrousel attract mode (code H)

5️⃣ Automatique - waiter

waiter - Animation d'attente
Stop l'attract mode avant affichage

Format

waiter|<start/stop>|[durée]

Paramètres

  • start/stop : start (ou stop)

Exemples

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "waiter|start"

Notes

  • Affiche une animation d'attente (parfois appelée "attract mode", mais l'attract mode réel se déclenche et se configure dans le Paramétrage)
  • L'ordre de ce qui sera affiché doit être configuré dans le Paramétrage

6️⃣ Météo - owmzc

owmzc - Configuration OpenWeatherMap
PAS DE STOP()

Format

owmzc|<zip_code>|<country_code>

Paramètres

  • zip_code : Code postal
  • country_code : Code pays (ex: FR, US, UK)

Exemple

mosquitto_pub -t "raspy2dmd" -m "owmzc|75001|FR"

Notes

  • Pas de Stop() automatique
  • Configure la localisation pour OpenWeatherMap
  • Nécessite une clé API OpenWeatherMap valide

6️⃣ Météo - fllcn

fllcn - Configuration localisation complète
PAS DE STOP()

Format

fllcn|<ville>|<état>|<pays>

Paramètres

  • ville : Nom de la ville
  • état : État/région (optionnel, vide pour France)
  • pays : Code pays

Exemples

# Ville française mosquitto_pub -t "raspy2dmd" -m "fllcn|Paris||FR" # Ville américaine mosquitto_pub -t "raspy2dmd" -m "fllcn|New York|NY|US"

Notes

  • Pas de Stop() automatique
  • Configuration plus précise que owmzc

6️⃣ Météo - meteo

meteo - Météo actuelle
Stop l'attract mode avant affichage

Format

meteo|

Description

Affiche la météo actuelle pour la localisation configurée

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "meteo|"

Notes

  • Utilise OpenWeatherMap API
  • Nécessite configuration préalable

6️⃣ Météo - meteoPrevi

meteoPrevi - Prévisions météo
Stop l'attract mode avant affichage

Format

meteoPrevi|

Description

Affiche les prévisions météo sur plusieurs jours

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "meteoPrevi|"

Notes

  • Utilise OpenWeatherMap API
  • Nécessite configuration préalable
  • Affiche les prévisions sur plusieurs jours

7️⃣ Performance - perf

perf - Performances système
Stop l'attract mode avant affichage

Format

perf|

Description

Affiche les performances du système (SOC)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "perf|"

Notes

  • CPU, RAM, température, etc.

8️⃣ Son & Effets - sound

sound - Jouer un son

Format

sound|<fichier.ogg>

Paramètres

  • fichier : Nom du fichier son (.ogg obligatoire)

Exemples

# Son simple mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "sound|beep.ogg"
# Applaudissements mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "sound|applause.ogg"

Notes

  • Cherche dans /Medias/Sounds/
  • Joué en parallèle de l'affichage
  • Format : .ogg obligatoire

8️⃣ Son & Effets - effet

effet - Effet visuel
Stop l'attract mode avant affichage

Format

effet|<numero>

Paramètres

  • numero : Numéro de l'effet (1-99)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "effet|12"

Notes

  • Effets visuels prédéfinis

8️⃣ Son & Effets - soundeffet

soundeffet - Son + Texte + GIF combinés
Stop l'attract mode avant affichage

Format

soundeffet|<texte>|<gif>|<son>

Paramètres

  • texte : Texte à afficher
  • gif : Nom du fichier GIF
  • son : Nom du fichier son

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "soundeffet|WINNER|celebration.gif|applause.ogg"

Notes

  • Combine texte + gif + son
  • Effet complet coordonné

9️⃣ Divers - edfJoursTempo

edfJoursTempo - Jours Tempo EDF
Stop l'attract mode avant affichage

Format

edfJoursTempo|

Description

Affiche les jours Tempo EDF (bleu/blanc/rouge)

Exemple

mosquitto_pub -h raspy2dmd -t "raspy2dmd" -m "edfJoursTempo|"

Notes

  • Spécifique France (tarif Tempo EDF)

🐍 Snake

snake - Le classique jeu Snake
Stop l'attract mode avant affichage

Description

Snake est le jeu classique du serpent qui grandit en mangeant de la nourriture.

Principe du jeu : Contrôlez un serpent qui se déplace continuellement. Mangez la nourriture pour grandir et augmenter votre score, tout en évitant de vous mordre la queue et les murs (ou obstacles si activés).

Objectif : Obtenir le meilleur score possible en mangeant le maximum de nourriture sans collision.

Commandes MQTT principales

  • raspy2dmd snake|start - Démarre une nouvelle partie
  • raspy2dmd snake|stop - Arrête la partie en cours
  • raspy2dmd snake|pause - Met en pause / reprend la partie

Commandes de contrôle (déplacement)

  • raspy2dmd snake|up - Déplace le serpent vers le haut
  • raspy2dmd snake|down - Déplace le serpent vers le bas
  • raspy2dmd snake|left - Déplace le serpent vers la gauche
  • raspy2dmd snake|right - Déplace le serpent vers la droite
Exemples :
  • snake|start - Démarre une nouvelle partie
  • snake|up - Tourne vers le haut
  • snake|pause - Met en pause

Contrôles clavier (interface Web)

Touche Action
Flèche Haut Déplacement vers le haut
Flèche Bas Déplacement vers le bas
Flèche Gauche Déplacement vers la gauche
Flèche Droite Déplacement vers la droite

Fichiers sonores (/Medias/Games/Snake/)

  • snake_start.ogg : Son de démarrage de partie
  • snake_eat.ogg : Son quand le serpent mange de la nourriture
  • snake_powerup_speed.ogg : Son du power-up Vitesse
  • snake_powerup_points.ogg : Son du power-up Points
  • snake_malus.ogg : Son du malus Shrink
  • snake_gameover.ogg : Son de game over
  • snake_victory.ogg : Son de victoire
  • snake_pause.ogg : Son de pause

Power-ups et malus

  • Power-up Vitesse (bleu) : Accélère temporairement le serpent
  • Power-up Points (jaune) : Donne des points bonus
  • Malus Shrink (violet) : Réduit la taille du serpent

Règles du jeu

  • Le serpent se déplace continuellement dans la direction choisie
  • Mangez la nourriture rouge pour grandir et gagner des points
  • Évitez de mordre votre propre queue (game over)
  • Évitez les murs ou activez le mode "nowalls" pour téléportation
  • Les obstacles (si activés) provoquent le game over en cas de collision
  • Collectez les power-ups pour des bonus temporaires
  • Système de high scores conservant les 100 meilleurs résultats

🏓 Pong

pong - Le classique jeu Pong
Stop l'attract mode avant affichage

Description

Pong est le jeu d'arcade classique de tennis de table en deux dimensions.

Principe du jeu : Deux raquettes s'affrontent pour renvoyer une balle. Le joueur contrôle sa raquette verticalement pour empêcher la balle de sortir de son côté. Chaque balle manquée donne un point à l'adversaire. La balle accélère progressivement au cours de la partie.

Objectif : Être le premier à atteindre le score maximum (par défaut 11 points) en marquant des points contre l'adversaire (CPU ou joueur 2).

Commandes MQTT principales

  • raspy2dmd pong|start|[joueur]|[difficulté] - Démarre une nouvelle partie
  • raspy2dmd pong|stop - Arrête la partie en cours
  • raspy2dmd pong|pause - Met en pause / reprend la partie

joueur (optionnel) :

  • 1 : Mode 1 joueur vs CPU (par défaut)
  • 2 : Mode 2 joueurs

difficulté (optionnel, uniquement en mode 1 joueur) :

  • beginner : CPU débutant
  • intermediate : CPU confirmé (par défaut)
  • expert : CPU expert

Commandes de contrôle (déplacement)

Toutes les commandes suivantes acceptent un paramètre joueur : |1 ou |2 (défaut: joueur 1)

  • raspy2dmd pong|up|[joueur] - Déplace la raquette vers le haut
  • raspy2dmd pong|down|[joueur] - Déplace la raquette vers le bas
Exemples :
  • pong|start|1 - Démarre partie 1 joueur vs CPU
  • pong|up|1 - Joueur 1 monte sa raquette
  • pong|pause - Met en pause

Contrôles clavier (interface Web)

Touche Action
E Joueur 1 - Déplacer vers le haut
D Joueur 1 - Déplacer vers le bas
I Joueur 2 - Déplacer vers le haut (mode 2 joueurs)
K Joueur 2 - Déplacer vers le bas (mode 2 joueurs)
Espace Pause / Reprendre
Entrée Démarrer une partie
Échap Arrêter la partie

Fichiers sonores (/Medias/Games/Pong/)

  • pong_start.ogg : Son de démarrage de partie
  • pong_paddle_hit.ogg : Son de rebond sur raquette
  • pong_wall_hit.ogg : Son de rebond sur mur
  • pong_score.ogg : Son quand un point est marqué
  • pong_win.ogg : Son de victoire
  • pong_lose.ogg : Son de défaite (vs CPU)
  • pong_pause.ogg : Son de pause

Catégories de high scores

  • EASY : Scores contre CPU niveau débutant
  • MED : Scores contre CPU niveau confirmé
  • HARD : Scores contre CPU niveau expert
  • PVP : Scores en mode 2 joueurs

Règles du jeu

  • Contrôlez votre raquette verticalement pour renvoyer la balle
  • Si la balle sort de votre côté, l'adversaire marque un point
  • La balle accélère progressivement au cours de la partie
  • L'angle de rebond dépend de l'endroit où la balle touche la raquette
  • Premier à atteindre le score maximum (par défaut 11 points) remporte la partie
  • En mode 1 joueur, affrontez une IA avec 3 niveaux de difficulté
  • En mode 2 joueurs, affrontez un adversaire humain

🐦 Fly Bird

flybird - Jeu inspiré de Flappy Bird
Stop l'attract mode pendant la partie

Description

Fly Bird est un jeu d'arcade inspiré du célèbre Flappy Bird où vous guidez un oiseau à travers des obstacles.

Principe du jeu : Un oiseau tombe en permanence sous l'effet de la gravité. Le joueur doit le faire sauter au bon moment pour éviter les tuyaux qui défilent horizontalement. Chaque tuyau franchi rapporte un point.

Objectif : Obtenir le meilleur score possible en franchissant le maximum de tuyaux sans collision.

Commandes MQTT principales

  • raspy2dmd flybird|start - Démarre une nouvelle partie
  • raspy2dmd flybird|stop - Arrête la partie en cours
  • raspy2dmd flybird|pause - Met en pause / reprend la partie

Commandes de contrôle (gameplay)

  • raspy2dmd flybird|jump - Fait sauter l'oiseau vers le haut
Exemples :
  • flybird|start - Démarre une nouvelle partie
  • flybird|jump - L'oiseau saute
  • flybird|pause - Met en pause

Contrôles clavier (interface Web)

Touche Action
Espace Faire sauter l'oiseau
P Pause / Reprendre
Entrée Démarrer une partie
Échap Arrêter la partie

Fichiers sonores (/Medias/Games/FlyBird/)

  • flybird_start.ogg : Son de démarrage de partie
  • flybird_jump.ogg : Son du saut de l'oiseau
  • flybird_score.ogg : Son quand un point est marqué
  • flybird_hit.ogg : Son de collision avec un tuyau
  • flybird_gameover.ogg : Son de fin de partie
  • flybird_pause.ogg : Son de pause

Niveaux de difficulté

  • Facile : Espacement large — Temps de réaction très confortable
  • Normal : Espacement confortable — Temps de réaction suffisant
  • Hard : Passage plus étroit — Nécessite plus de précision

Règles du jeu

  • L'oiseau tombe en permanence sous l'effet de la gravité
  • Appuyez sur jump pour faire sauter l'oiseau vers le haut
  • Évitez de heurter les tuyaux (collision = game over)
  • Évitez de toucher le sol ou le plafond (game over)
  • Chaque tuyau franchi rapporte 1 point
  • Les tuyaux défilent horizontalement avec génération procédurale
  • Objectif : Obtenir le meilleur score possible en franchissant un maximum de tuyaux

🚀 Space Wars

spacewars - Jeu de combat spatial multijoueur
Stop l'attract mode avant affichage

Description

Space Wars est un jeu de combat spatial pour 1 ou 2 joueurs inspiré du classique Space War!

Principe du jeu : Deux vaisseaux s'affrontent dans l'espace en évitant un trou noir central qui exerce une force gravitationnelle. Les joueurs doivent manœuvrer habilement, tirer sur l'adversaire tout en évitant d'être aspirés par le trou noir ou percutés par des astéroïdes.

Objectif : Atteindre le score maximal configuré (par défaut 10 points) en détruisant le vaisseau adverse.

Commandes MQTT principales

  • raspy2dmd spacewars|start - Démarre une nouvelle partie
  • raspy2dmd spacewars|stop - Arrête la partie en cours
  • raspy2dmd spacewars|pause - Met en pause / reprend la partie

Commandes de contrôle (par joueur)

Toutes les commandes suivantes acceptent un paramètre joueur : |1 ou |2 (défaut: joueur 1)

  • raspy2dmd spacewars|rotate_left|[player] - Pivote le vaisseau vers la gauche (sens anti-horaire)
  • raspy2dmd spacewars|rotate_right|[player] - Pivote le vaisseau vers la droite (sens horaire)
  • raspy2dmd spacewars|thrust|[player] - Active la propulsion (accélère dans la direction du vaisseau)
  • raspy2dmd spacewars|fire|[player] - Tire un missile
  • raspy2dmd spacewars|hyperspace|[player] - Téléportation aléatoire (urgence pour échapper au danger)
Exemples :
  • spacewars|rotate_left|1 - Joueur 1 pivote à gauche
  • spacewars|fire|2 - Joueur 2 tire un missile
  • spacewars|hyperspace|1 - Joueur 1 se téléporte

Contrôles clavier (interface Web)

Joueur 1 Action Joueur 2
A Rotation gauche Flèche Gauche
D Rotation droite Flèche Droite
W Propulsion Flèche Haut
Espace Tirer Entrée
Q Hyperspace Shift Droit

Fichiers sonores (/Medias/Games/SpaceWars/)

  • thrust.ogg : Son de propulsion du vaisseau
  • fire.ogg : Son de tir de missile
  • explosion.ogg : Son d'explosion (collision vaisseau)
  • hit.ogg : Son d'impact (missile touche vaisseau)
  • hyperspace.ogg : Son de téléportation hyperspace

Règles du jeu

  • Le trou noir central exerce une force gravitationnelle qui attire les vaisseaux
  • Collision avec le trou noir = destruction du vaisseau (point pour l'adversaire)
  • Les missiles ne sont pas affectés par la gravité
  • Les astéroïdes (si activés) dérivent dans l'espace et peuvent détruire les vaisseaux
  • L'hyperspace téléporte aléatoirement le vaisseau (peut être dangereux !)
  • Les vaisseaux réapparaissent au centre après destruction
  • Le premier joueur à atteindre le score maximum remporte la partie

Modes de difficulté

  • Easy : Gravité faible, peu d'astéroïdes, vaisseaux plus maniables
  • Medium : Gravité moyenne, astéroïdes modérés, équilibre standard
  • Hard : Gravité forte, nombreux astéroïdes, vaisseaux difficiles à contrôler

🎲 Dés

des - Jeu de dés configurable
Stop l'attract mode avant affichage

Description

Le jeu de Dés permet de lancer jusqu'à 6 dés simultanément sur le DMD. Chaque dé est entièrement configurable : nombre de faces, couleur du texte, couleur de fond et type d'animation.

Mécaniques disponibles :

  • Lancer unique : Chaque lancer relance tous les dés. Les dés s'arrêtent automatiquement (mode auto) ou sur action de l'utilisateur (mode manuel).
  • Yahtzee : Les dés verrouillés ne sont pas relancés. Un contour doré indique un dé verrouillé. Jusqu'à N lancers consécutifs (configurable), après quoi tous les verrous sont levés.

Animations disponibles :

  • Simple : Les chiffres défilent aléatoirement à 20 fps jusqu'à l'arrêt.
  • 3D : Un cube wireframe tourne à vitesses angulaires différentes pour un effet naturel. Le chiffre animé est affiché au centre du cube. Une fois stoppé, le dé passe en mode simple (fond coloré + chiffre).

Commandes MQTT

  • raspy2dmd des|start - Ouvre la session dés, fige l'attract mode
  • raspy2dmd des|roll - Lance les dés non verrouillés
  • raspy2dmd des|stop - Stoppe tous les dés en cours
  • raspy2dmd des|stop|N - Stoppe et verrouille le dé N (1-based, ex: des|stop|2)
  • raspy2dmd des|update_config - Recharge la configuration et réinitialise les dés
  • raspy2dmd des|quit - Ferme la session, réactive l'attract mode
Exemples :
  • des|start - Ouvre la page dés
  • des|roll - Lance les dés
  • des|stop|3 - Stoppe le 3ème dé
  • des|stop - Stoppe tous les dés
  • des|quit - Ferme la session

Contrôles clavier (interface Web)

Touche Action
Espace Lancer les dés (si non en train de tourner)
C Stopper / verrouiller tous les dés
1 – 6 Stopper / verrouiller le dé correspondant
Échap Quitter la page dés

Types de dés

Types prédéfinis : D4, D6, D8, D10, D12, D20

Il est également possible de saisir librement n'importe quel entier ≥ 2 comme nombre de faces (dé personnalisé).

Le type de chaque dé est configuré par position dans l'interface web (/des) et sauvegardé au format pipe-séparé :

dice_types = 6|20|8|6|6|6

Configuration INI [Des]

Clé Défaut Description
font8bit.ttfPolice utilisée pour les chiffres
fontsize8Taille de la police (px)
mechanicsinglesingle (lancer unique) ou yahtzee
animationsimplesimple (nombres aléatoires) ou 3d (cube wireframe)
stop_modeautoauto (arrêt après durée) ou manual (arrêt sur action)
animation_duration3.0Durée de l'animation en mode auto (secondes)
yahtzee_max_rolls3Nombre maximum de lancers en mode Yahtzee
soundsenabled1Son activé (1) ou désactivé (0)
num_dice2Nombre de dés affichés (1 à 6)
dice_types6|6|6|6|6|6Nombre de faces par position (pipe-séparé)
dice_text_colors255,255,255|…Couleur du texte par position (R,G,B pipe-séparé)
dice_bg_colors30,30,80|…Couleur de fond par position (R,G,B pipe-séparé)
Exemples via MQTT :
  • conf|Des|mechanic|yahtzee - Passe en mode Yahtzee
  • conf|Des|animation|3d - Active l'animation 3D
  • conf|Des|stop_mode|manual - Arrêt manuel
  • conf|Des|animation_duration|5.0 - Durée de 5 secondes
  • conf|Des|num_dice|4 - Affiche 4 dés

Fichiers sonores (/Medias/Sounds/Jeux/Des/)

  • des_roll.ogg : Son joué au début de chaque animation de tirage

Règles et mécaniques

  • En mode Lancer unique : tous les dés sont relancés à chaque appui. En mode manuel, ils continuent de tourner jusqu'à un stop explicite (touche ou bouton).
  • En mode Yahtzee : les dés avec un contour doré sont verrouillés et ne seront pas relancés. Après N lancers (configurable), tous les verrous sont automatiquement levés.
  • En mode d'arrêt auto : les dés s'arrêtent après la durée configurée (défaut : 3 secondes).
  • En mode d'arrêt manuel : les dés tournent indéfiniment jusqu'à ce que l'utilisateur les stoppe (un par un ou tous d'un coup).
  • Les couleurs de texte et de fond sont configurées par position depuis la page principale /des et sauvegardées dans la configuration INI.
  • Il n'y a pas de système de high scores (jeu sans game over).

🎙️ Visualiseur Audio

audiovis - Visualiseur audio réactif sur le DMD
Mode exclusif possible

Description

Le visualiseur audio capture le son d'un microphone USB en temps réel et l'affiche sous forme graphique sur le DMD. Cinq modes visuels sont disponibles, avec un gain réglable et une intégration dans l'attract mode.

Prérequis : Un microphone USB branché sur le Raspberry Pi.

Fréquence d'échantillonnage : 11 025 Hz — FFT jusqu'à 5 512 Hz (couvre toute la plage audio musicale utile).

Commandes MQTT

  • raspy2dmd audiovis|start - Démarre le visualiseur avec les paramètres sauvegardés
  • raspy2dmd audiovis|start|[mode]|[gain] - Démarre avec mode et gain spécifiques
  • raspy2dmd audiovis|stop - Arrête le visualiseur
  • raspy2dmd audiovis|mode|[mode] - Change le mode visuel à chaud
  • raspy2dmd audiovis|gain|[valeur] - Modifie le gain à chaud (0–100)
  • raspy2dmd audiovis|device|[index] - Change le périphérique audio à chaud
Exemples :
  • audiovis|start - Démarre avec les paramètres configurés
  • audiovis|start|eq_8|60 - Démarre en mode égaliseur 8 bandes, gain 60
  • audiovis|mode|waveform - Passe en mode waveform sans redémarrer
  • audiovis|gain|80 - Augmente le gain à 80
  • audiovis|stop - Arrête la visualisation

Modes visuels

Identifiant Nom Description
db_meter 📊 Décibelmètre Barre horizontale unique 0–100 dB, dégradé vert→rouge, avec graduations et valeur dB affichée
vu_meter ↔️ VU-mètre Deux barres symétriques gauche/droite (stéréo ou mono miroir), avec indicateurs de crête à décroissance exponentielle
eq_8 🎛️ Égaliseur 8 bandes 8 colonnes verticales de 16px de large, couvrant 20 Hz à 5 kHz, avec couleurs spécifiques par bande de fréquence et indicateurs de crête
eq_32 🎚️ Égaliseur 32 bandes 32 colonnes verticales de 4px de large, espacées logarithmiquement de 20 Hz à 5 kHz, dégradé violet→blanc, avec indicateurs de crête
waveform 〰️ Waveform Forme d'onde défilante horizontalement, symétrique (haut et bas), avec couleurs arc-en-ciel selon l'amplitude

Paramètre Gain

Le gain amplifie le signal audio avant analyse FFT. Il permet d'adapter la sensibilité selon le volume ambiant et la distance au microphone.

ValeurMultiplicateurUsage recommandé
025×Environnement très bruyant
5075×Volume ambiant normal
100125×Microphone éloigné / son faible

Mode exclusif

Quand le mode exclusif est activé dans les paramètres, le visualiseur audio filtre toutes les trames MQTT reçues pendant son fonctionnement, à l'exception de :

  • rebt| — Redémarrage du système
  • shutdwn| — Extinction du système
  • audiovis|stop — Arrêt du visualiseur
  • Actions du serveur de boutons GPIO (ButtonsServer)
  • Actions du serveur Bluetooth (BluetoothServer)

À l'arrêt du visualiseur, le fonctionnement normal reprend automatiquement.

Intégration dans l'Attract Mode

Le visualiseur audio peut être inclus dans la rotation de l'attract mode. La durée d'affichage (en secondes) est configurable depuis l'interface web /audiovis.

  • Durée 0 (défaut) : non inclus dans l'attract mode
  • Durée N secondes : le visualiseur est affiché pendant N secondes lors de chaque passage dans le carrousel

Configuration INI — Section [AudioVisualizer]

ParamètreValeursDescription
modedb_meter, vu_meter, eq_8, eq_32, waveformMode visuel par défaut
gain0–100Gain microphone (25×–125×)
deviceauto ou index numériquePériphérique audio (auto = premier micro USB détecté)
noise_gate0–100Filtre de bruit de fond — en dessous du seuil, le signal est considéré comme silence (0 = désactivé)
mirror0 ou 1Barres EQ symétriques depuis le centre (modes eq_8, eq_32, eq_full uniquement)
exclusive_mode0 ou 1Filtre les autres trames MQTT pendant la visualisation
attract_duration0–3600 (secondes)Durée dans l'attract mode (0 = désactivé)

Interface Web

Une page de configuration dédiée est accessible depuis la section Contenu et médias de l'accueil :

  • Démarrer / Arrêter le visualiseur directement depuis le navigateur
  • Sélection du mode visuel par boutons avec prévisualisation des icônes
  • Curseur de gain avec envoi à chaud si le visualiseur est actif
  • Sélection du périphérique avec bouton Actualiser pour détecter les nouveaux micros branchés
  • Options avancées : mode exclusif, durée attract mode
  • Sauvegarde persistante dans le fichier de configuration

🔧 Matériel - Horloge RTC

Gestion du module RTC (Real-Time Clock)
Module optionnel

Description

Raspy2DMD supporte les modules RTC (DS1307, DS3231, PCF8523, etc.) pour maintenir l'heure même sans connexion réseau. Le module RTC se connecte via I2C. La détection se fait automatiquement.

🔌 Connectivité - USB Gadget Mode

Connexion réseau directe via câble USB (OTG)
Module optionnel Automatique

Description

Raspy2DMD supporte le mode USB Gadget (OTG) qui transforme le Raspberry Pi en carte réseau Ethernet USB. En branchant un simple câble USB entre le Pi et un ordinateur, une connexion réseau directe s'établit automatiquement, permettant d'accéder au site web interne sans WiFi ni Ethernet.

L'adresse IP du Pi sur cette interface est 10.0.0.1. L'ordinateur connecté reçoit automatiquement une adresse IP via DHCP (plage 10.0.0.2 à 10.0.0.10).

Modèles compatibles

Modèle Support OTG Port utilisé
Pi Zero / Zero W / Zero WH ✅ Oui Micro-USB OTG
Pi Zero 2 W ✅ Oui Micro-USB OTG
Pi 3A / 3A+ ❌ Non -
Pi 3B / 3B+ ❌ Non -
Pi 4B ✅ Oui USB-C
Pi 5 ✅ Oui USB-C

Fonctionnement

  • Activation automatique : configuré à l'installation sur les modèles compatibles
  • Détection par udev : quand le câble USB est branché, l'interface usb0 apparaît et une règle udev déclenche l'affichage de l'IP sur le DMD
  • DHCP automatique : le Pi fournit une adresse IP au PC hôte via dnsmasq
  • mDNS : Avahi annonce automatiquement raspy2dmd.local sur l'interface USB

Accès au site web via USB

// Par IP statique
http://10.0.0.1/

// Par mDNS (nom d'hôte)
http://raspy2dmd.local/

Notification sur le DMD

Ces notifications sont envoyées via MQTT.

ℹ️ Boot avec câble branché : Au démarrage, le module USB est chargé avant que le broker MQTT et le serveur DMD ne soient prêts. Le script de notification s'exécute en arrière-plan et attend que MQTT soit disponible (polling toutes les 5 secondes, max 120 secondes) avant d'afficher l'IP. Le message apparaît donc après le gif de bienvenue, une fois les services démarrés.

Affichage dans le bandeau web

Le bandeau supérieur du site web affiche désormais les adresses IP par type d'interface :

raspy2dmd.local | WiFi : 192.168.1.10 | USB : 10.0.0.1

Notes

⚠️ Pi Zero : Le port micro-USB OTG est le seul port USB. Un câble USB branché pour le mode gadget empêche l'utilisation d'un clavier/souris (sauf via un hub OTG).
  • ⚠️ Redémarrage : la première activation nécessite un redémarrage du Pi (modification de config.txt et cmdline.txt)
  • Windows : nécessite le driver RNDIS (installé par défaut sur Windows 10/11)
  • macOS / Linux : reconnaissance automatique du gadget USB
  • Partage Internet : le PC hôte doit partager sa connexion Internet si le Pi en a besoin

📊 Tableau récapitulatif

Actions SANS arrêt automatique de l'attract mode (continuent en parallèle)

Commande Description
rebt Redémarrer le système
shutdwn Éteindre le système
excludeFolder Exclure un dossier
excludeFile Exclure un fichier
conf Modifier configuration
rldconf Recharger configuration
receipconf Envoyer config
owmzc Config OpenWeatherMap
fllcn Config localisation
sound Jouer un son

Actions AVEC arrêt automatique de l'attract mode (interrompent l'affichage)

Catégorie Commandes
Texte msg, msgXX, msgmove, msgmovebcl, msgcarrou, msgcolor, msgimg, msgcst, msgfull, score
Images & GIFs img, gif, gifPath, gifText, rand, demo
Horloge time, waiter
Météo meteo, meteoPrevi, edfJoursTempo, perf
Effets effet, soundeffet
Tests testFont, testPattern

🎯 Comportements spéciaux

Gestion des erreurs

Images non trouvées

Exemple : img|WELK.OME

  • Log local seulement
  • PAS d'erreur MQTT
  • Permet conditions logiques

GIFs corrompus

  • Log l'erreur
  • Erreur MQTT envoyée
  • Continue le traitement
  • Fallback automatique (ENHANCED)

Fichiers manquants avec fallback (ENHANCED)

  • Essaie fallback automatiquement
  • Log le changement
  • Continue normalement

Recherche aléatoire (rand|gif)

Mode ENHANCED : Pool sans répétition

  • Chaque GIF affiché 1 fois avant répétition
  • Ignore GIFs corrompus automatiquement
  • Statistiques en temps réel

Mode HISTORIQUE : Aléatoire standard

  • Peut répéter le même GIF
  • Gère les erreurs mais continue

Extensions multiples (ENHANCED)

# Essaie demo.gif puis demo.GIF gif|demo|1|0||.gif,.GIF
# Essaie plusieurs formats img|logo|0||.png,.PNG,.jpg,.jpeg
  • Essaie demo.gif puis demo.GIF
  • Supporte différentes casses
  • Premier trouvé est utilisé

📝 Notes importantes

Formats de couleurs

Format : R;G;B
Valeurs : 0-255 pour chaque composante
Exemple : 255;0;0 = rouge pur

Chemins des principaux fichiers

Racine : /Medias/
Gifs : /Medias/Gifs/
Images : /Medias/Images/
Fonts : /Medias/Fonts/
Patterns : /Medias/Patterns/
Sounds : /Medias/Sounds/
Textes : /Medias/Textes/

Nom des fichiers

Si seulement le nom du fichier est indiqué, la recherche s'effectuera uniquement dans les chemins de fichiers indiqués ci-dessus.
Si un nom de dossier est précisé en plus du nom du fichier, la recherche s'effectuera dans ce dossier.

Directions (sens)

left : Défilement vers la gauche
right : Défilement vers la droite
up : Défilement vers le haut
down : Défilement vers le bas

L'arrêt temporaire de l'attract mode

Se produit lorsqu'une trame est reçue (si l'attract mode est activé, c'est-à-dire configuré sur une valeur autre que 0)
Exceptions : conf, sound, commandes système

Réponses MQTT

Canal : raspy2dmd/response
Format succès : SUCCESS|action|message
Format erreur : ERROR|action|message

Appliquer une configuration déjà existante

Après avoir réalisé la gravure de l'image sur votre carte microSD, vous pouvez déposer à la racine de celle-ci votre fichier Raspy2DMD.cfg.
Il sera automatiquement copié dans le répertoire /Medias lors du premier démarrage.

Utilisation de l'espace complet de la carte microSD

Lors du premier démarrage, Raspy2DMD récupèrera l'espace complet disponible sur la carte microSD.

Test RGB pour les panneaux DMD

Il est possible d'afficher une mire RGB pour tester l'affichage de vos panneaux (cas des panneaux GRB, etc.). Il suffit de déposer un fichier rgb (sans aucune extension) à la racine de la carte SD.

Exemple matrice LED
Mire RGB