Présentation de l’API MQTT Awtrix

AWTRIX V2 peut être contrôlé par des systèmes externes. Nous allons utiliser l’API MQTT pour cela.

Les requêtes envoyées doivent correspondre à des topic MQTT de l’API.
Il y a 4 types de topic:

awtrix/basics

power : Allumer ou éteindre votre Awtrix

{"power": true} 

switchTo : Changer d’application.
switchTo: appname

{"switchTo":"facebook"}

AppState : Activer ou désactiver une app.
enable: Appname ou disable: Appname

{"disable":"facebook"}

app : Contrôler la boucle des applications.
« next »: app suivante, « back »: app précédente, « pause« : mettre en pause la boucle

{"app":"next"}

msgShort: Faire défiler un texte une fois.
msgShort: Textstring

{"msgShort":"Hello World"}

msgEndless: Faire défiler un texte sans fin

 {"msgEndless":"Hello World"} 

msgColor: Change la couleur du texte
msgColor: tableau d’entiers [R, V, B]

{"msgColor":[255,0,0]}

msgStop: Arrête le défilement du message

 {"msgStop":true} 

awtrix/app

Vous allez pouvoir afficher une application unique avec les informations que vous voulez pendant la durée définie dans votre serveur Awtrix.
Vous pouvez également définir des icônes dont la référence numérique est trouvable sur Awtrixer pour Android (GooglePlay) onglet database.

Voici les différents paramètres :
force : Valeur True L’application va immédiatement s’afficher sur celle en cours. Valeur False votre application s’éxécutera après celle en cours.
text : Le texte que vous voulez afficher
icon (option) : Le numéro d’icone récupéré sur awtrixer
– color : La couleur du texte à afficher en RVB
moveIcon (option) : Valeur True : Déplace l’icône hors de l’écran pour libérer de l’espace pour le texte
count (option) : Combien de fois le texte doit défiler avant de passer à l’application suivante. Si le texte n’a pas besoin de défiler (en raison de la longueur du texte), il utilisera l’appduration globale pour passer.

{"force":false,"icon":6,"text":"Awtrix","color":[255,0,0]}

Avec ce code, vous afficherez le texte Awtrix en rouge avec une l’icône awtrix et ceci après l’app en cours d’exécution sur l’Awtrix V2.

awtrix/draw

Vous pouvez envoyer diverses commandes de dessin à votre Awtrix pour créer votre propre animation. Toutes les méthodes sont statiques, le défilement automatique du texte n’est pas possible. Mais vous avez la possibilité de créer votre propre flux de dessin. Pour cela, vous pouvez définir plusieurs commandes dans une chaîne JSON que Awtrix les traite les unes après les autres.

Chaque commande ne remplit que le framebuffer. Vous devez exécuter show pour finalement afficher les données sur la matrice.

Voici les différents paramètres :
loop : Combien de fois les routines de dessin doivent être répétées (facultatif)
text : Affiche un texte ( string, position [X,Y], color [R,G,B] )
rect : Affiche un rectangle ( position [X,Y], size [Width,Weight], color [R,V,B] )
line : Affiche une ligne ( start[X0,Y0], end [X1,Y1], color [R,V,B] )
circle : Affiche un cercle( position [X,Y],radius[entier], color [R,V,B] )
pixel : Affiche un pixel ( position [X,Y], color [R,V,B] )
bmp : Affiche une image ( position [X,Y], size [Width,Height], data Tableau d’entiers RGB565 [p0, p1, p2, p3, …] )
fill : Remplit la matrice entière avec une couleur ( color [R,V,B] )
wait : Attend X millisecondes avant la prochaine commande ( ms [entier] )
show : Affiche toutes les commandes précédentes
clear : Efface la matrice
exit : Quitter et revenir à l’état normal

L’exemple suivant est structuré comme suit:

  • Répéter tout deux fois
  • Remplir tout l’écran avec du gris
  • Écrivez « bonjour »
  • Afficher les deux dernières commandes sur la matrice
  • Attendez 3 secondes avant la prochaine commande
  • Tracez un cercle à côté du texte
  • Et le montrer
  • Attendez encore 3 secondes
  • Effacer le cadre entier
  • Tracez une ligne du coin supérieur gauche au coin inférieur droit
  • Montrer la ligne sur la matrice
  • Attendez 3 secondes
  • Quitter le mode dessin
 {
"repeat":2,
"draw": [
{
"type": "fill",
"color": [100,100,100]
},
{
"type": "text",
"string": "Hello",
"position": [0,0],
"color": [255,0,0]
},
{
"type": "show"
},
{
"type": "wait",
"ms": 3000
},
{
"type": "circle",
"radius": 3,
"position": [24,3],
"color": [255,0,255]
},
{
"type": "show"
},
{
"type": "wait",
"ms": 3000
},
{
"type": "clear"
},
{
"type": "line",
"start": [0,0],
"end": [31,7],
"color": [255,255,255]
},
{
"type": "show"
},
{
"type": "wait",
"ms": 3000
},
{
"type": "exit"
}
]
}

Remarque: vous devez appeler exit pour quitter le mode de dessin et revenir à l’état normal. Si vous définissez repeat, la commande exit sera ignorée et quittera automatiquement le mode de dessin lorsque toutes les répétitions seront effectuées.

awtrix/settings

Définir la luminosité:
brightness : de 0 éteint à 255 luminosité maximale

{"brightness":100}