You are currently viewing Awtrix l’horloge connecté à Jeedom via JMQTT

Awtrix l’horloge connecté à Jeedom via JMQTT

Tags: Awtrix horloge jeedom JMQTT

Mise a jour 08/2022

Remerciement

Ce tuto à été possible grâce à l’aide technique et sans faille de DCjona de l’équipe nextdom, un énorme merci a lui et à son inventivité !

0.Contexte

Etant papa d’une petite Gremlins de 4 ans qui aime se lever très tôt et réveiller son papa d’amour qui lui aimerait récupérer un peu de sommeil , je cherchais un moyen de lui indiquer si l’heure était convenable ou non. De nombreux réveil pour enfant le font seul souci il faut les reprogrammer manuellement et il coûte plutôt cher. Puis j’ai découvert l’Awtrix…

1.Partie Serveur de l’awtrix

ATTENTION IL FAUT UN SERVEUR PAR AWTRIX

D’abord il vous faut créer un serveur awtrix par exemple sur un RPI, je l’ai fait tourner sur un pi zero pour le fun mais finalement je l’ai mis sur ma vm qui héberge mon serveur traccard pour plus de fluidité.

Tout d’abord il faut vous connecter en SSH a votre serveur via putty par exemple

Puis en ligne de commande il faut taper :

wget -N https://blueforcer.de/awtrix/awtrix.sh ; sudo sh awtrix.sh

et voila l’installation du serveur est ok

Pour que le serveur démarre automatiquement il faut créer le fichier awtrix.service

Pour cela il faut tapez la commande suivante :

sudo nano /etc/systemd/system/awtrix.service

Puis dans le fichier on colle le code suivant :


[Unit]
Description=AWTRIX SERVER
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/awtrix/
ExecStart=/usr/bin/java -jar /usr/local/awtrix/awtrix.jar

[Install]
WantedBy=multi-user.target

puis Ctrl O puis entrée et Ctrl X pour quitter

On enregistre

1.1 Réglage de l’heure de l’awtrix

Taper la commande

sudo systemctl enable awtrix

Alors on vérifie que l’heure du serveur est bien sur paris en tapant

sudo dpkg-reconfigure tzdata

et en allant chercher votre pays et votre ville

Chez moi cela n’as pas suffit j’ai donc créer un serveur de temps NTP

pour cela il faut taper la commande

sudo apt-get install ntp ntpdate

secondairement

sudo ntpdate -s time.nist.gov

Redémarrer le serveur pour que tout soit pris en compte avec le code

reboot

On vérifie que le serveur fonctionne en tapant l’adresse IP de notre debian en ajoutant :7000

Le serveur ne trouve pas notre matrix, Normal on l’as pas encore monté !

2 Matériel pour l’awtrix

J’ai choisi de fabriquer l’awtrix la plus simple possible pour cela j’ai utilisé :

Je vous ai mis les liens de où je les ai acheté mais vous pouvez trouver facilement ailleurs

Un wemos D1

Une matrice led 8 par 32

Un condensateur 1000 UF

Une alimentation 5V

Des connecteur jack

un boitier à imprimer en 3d, moi mon meilleur ami me l’as fait en bois sinon y a des modèles sur thingiverse

Il va falloir sortir le fer à souder, pour l’occasion j’ai mis a la retraite mon fer a souder de 16 ans pour ce modèle

2.1 Awtrix sound

L’effet de cette horloge est tellement ouf que j’en ai refait une avec le son pour ma plus grande avec cette fois en plus :

DF player

Haut parleur 3w

Une carte sd qui traînait par la qui ne sert qu’à héberger les MP3

3. Flash du Wemos D1

Pour flasher le wemos D1, c’est très simple on le branche sur un port usb 2 de son pc via un câble micro usb. On installe le logiciel Esp easy et dans le dossier firmware du logiciel on copie le firmware suivant .

Pour commencer télécharger esp easy puis on de-zippe celui-ci dans un dossier. On copie le firmware téléchargé dans le dossier bin.

En second lancer ESP.Easy.Flasher.exe.

1 on choisit notre port com

2 il faut aller chercher notre firmware

On flash et on attends. Si tout c’est bien passé le logiciel nous dit que tout est ok.

4 Assemblage

4.1 Awtrix simple

En premier lieu , préchauffer le fer à souder

il est conseiller de suivre ce montage

Basissetup

Pour cela on coupe l’embout de l’alimentation 5V , la phase est au centre et le neutre autour. On branche la phase dans notre adaptateur jack mâle sur le plus et le neutre sur le moins

Premièrement dénuder 2 fils de diamètre 0,75 mm d’environ 5 cm puis a une extrémité on les relis sur adaptateur jack femelle en respectant bien le plus et le moins. a l’autre extrémité on soude un condensateur 1000 UF

Sur le condensateur on soude à nouveau deux fils de diamètre 0,75 mm d’environ 5 cm et ils vont nous servir à alimenter le wemos D1.

4.1.1 la matrice, le coeur de l’horloge connectée

Du côté de la matrice il y a trois cable :

  • à gauche une nappe marqué DIN sur le fil vert
  • au centre une alimentation ( qui ne sert a rien)
  • à droite une nappe ou c’est inscrit DOUT sur le fil vert, pour éviter les erreurs il faut couper celle ci et la conserver

Maintenant on prend le fil Rouge de notre nappe DOUT et le fil de phase qui vient de notre condensateur et on les soudes ensemble sur le wemos sur l’emplacement 5V

là-dessus on prend le fil noir de notre nappe DOUT et le fil neutre qui vient de notre condensateur et on les soudes ensemble sur le wemos sur l’emplacement G

plus tard on soude le fil vert de notre nappe DOUT sur l’emplacement D2

Voilà les soudures sont terminés, il ne reste plus qu’à relier la nappe DOUT à la nappe DIN de la matrice et de brancher le chargeur 5V.

Normalement la matrice devrait vous afficher ces motifs :

Maintenant il faut prendre votre téléphone et activer le wifi puis vous connecter au wifi awtrixcontroller le mdp est awtrixxx. Dans serveur on renseigne l’adresse ip du serveur sans indiquer :7000

Une page de configuration se lance qui vous permet de choisir le réseau wifi auquel l’awtrix doit se connecter ( ne supporte que le 2,4GHZ) , renseigner le mots de passe, et enregistrer.

Si cela ne fonctionne pas on peut reset l’esp en restant appuyé 5 secondes sur le bouton reset du wemos. et recommencer l’opération, sur la matrice s’affichera reset

Au bout de quelques secondes l’awtrix devrait se connecter à son serveur .

4.2 Awtrix Sound


Autrement dit par rapport à l’awtrix simple il faut relier G et 5 V au df player, ainsi qu’en D6 – D7

Une fois les soudures faites, il faut prendre une carte micro sd et y insérer un dossier MP3

Dans ce dossier il faut numéroter vos MP3 à partir de 101 et en les nommant 0101.mp3 ou 0101 – nomdump3.mp3

Il y a des sons intégrer d’office dans l’awtrix disponible ici

Attention le df player ne supporte des hauts parleurs que 3w max. Très honnêtement c’est bien suffisant pour un réveil

5 Serveur Awtrix

Sur le serveur awtrix vous avez un grand nombre d’appli, vous pouvez paramétrez les heures de fonctionnement, les temps d’affichage et les lié par exemple au nombre de j’aime de votre page, ou d’abonné sur youtube etc… Si ces fonctionnalités sont intéressantes ce qui m’intéresse c’est de pouvoir faire moi même ces fonctionnalité.

6 JMQTT et Jeedom

6.1 JMQTT sur awtrix

Pour la partie Awtrix il faut aller dans la configuration du host puis activer JMQTT

  • 1 On vas dans settings/host
  • 2 on active MQTT
  • 3 on sauvegarde
  • 4 on rentre l’aresse ip de notre jeedom
  • 5 port 1883, on ne met rien dans user ni mdp
  • 6 Mettre awtrix en prefix
  • 7 on sauvegarde

Si vous avez une deuxième awtrix il faudra mettre awtrix2 en préfixe sur le même jeedom (rappel il faut par contre un host awtrix server par matrice). et penser a adapter les ordres dans la case topic des actions JMQTT sur jeedom : on passe donc de awtrix/basics a awtrix2/basics

6.1.1 Si erreur MQTT

Si vous avez une erreur type connection is closed, cela est du à une erreur de version

Il faut donc envoyer ce fichier dans /usr/local/awtrix/ en remplacement du awtrix.jar qui doit se trouver la

ensuite on redemarre le serveur awtrix en tapant la commande sudo systemctl restart awtrix

Et cela doit fonctionner

6.2 JMQTT sur jeedom

Tout d’abord il faut installer le plugin JMQTT sur jeedom

Là-dessus installer JMQTT et vérifier que mosquitto est bien installé, sauvegarder

Premièrement le plugin et on commence par créer un Broker

1- On nomme l’équipement jeedom
2- On choisit l’objet parent
3- on active et on le rend visible
4- ON NE TOUCHE PAS AU TOPIC !!!!
5- On va dans broker
Ip de Mosquitto : Localhost
Port de mosquitto : 1883
Connexion : jeedom
Topic :#

Sans délai, il faut sauvegarder et rafraîchir avec F5

on clique sur l’inclusion de notre brocker

et la normalement cela fonctionne, tadam! apparait awtrix

et comme moi vous allez vous jeter a corps perdu dans les commandes et …

Quasi rien …

ET oui il faut tout créer oui vraiment tout !

7 Les commandes

Pour les rentrer dans JMQTT il faut ajouter une commande action en haut a gauche

Personnalisation d’une commande :

  • 1 Donner un nom
  • 2 Préciser le topic (Basics, Notify, Draw ou settings)
  • 3 La commande a exécuter dans valeur
  • 4 sauvegarder

Quelques exemple de commande

7.1 Settings : awtrix/settings

7.1.1 La fonction Brightness :

{"Brightness":30}

Cette fonction est pour moi essentiel , elle permet de changer la luminosité de l’awtrix.

Je m’en sers pour trois fonction

On : qui corresponds à 30%

Off : qui corresponds à 0 ( je préfère l’utiliser de cette façon que de l’éteindre)

Nuit : il abaisse la luminosité à 5%

Awtrix déconseille un brightness supérieur à 75%

7.1.2 La fonction Volume :

{"Volume":50}

SI vous construisez l’awtrix avec le module DF player, le son de base est quasi inaudible , avec cette fonction on peu booster le son , à 50% le volume est déjà fou pour un haut parleur de 3W

7.1.3 les autres fonctions

A vrai dire d’autres fonctions sont accessible directement via les réglages, on peut voir la liste ici

7.2 Basics : awtrix/basics

7.2.1 Power : {« power »: true}

{"power": true}

la fonction power existe en true pour l’allumage et en false pour éteindre

Finalement je ne l’utilise pas car bug régulièrement chez moi

7.2.2 Switch to : {« switchTo »: « OpenWeather »}

{"switchTo":"OpenWeather"}

la fonction permet de forcer le switch d’une application à une autre , forcer l’affichage météo dans notre cas

7.2.3 Apploop :

{"app": "next"}

la fonction permet de basculer à l’application suivante

Semblablement c’est possible de revenir a la précédente : {« app »: « back »}, ou de bloquer pour que l’horloge reste sur l’app actuel : {« app »: « hold »}

7.2.4 Showanimation :

{"showAnimation": "random"}

Celle-ci permet de montrer une animation au hasard.

En dernier lieu, il est possible de designer une animation précise {« showAnimation »: »batman »}

Dans le but de trouver le nom des animations il faut avoir installer cette application, les noms sont dans la liste à droite, attention bien écrire en minuscule !

7.2.5 Sounfile :

{"soundfile": 101}

Si vous avez installé un dfplayer vous pouvez jouer vos propres mp3 stockez sur la carte SD.

7.2.5.1 Choisir quel musique jouer

J’ai mis une trentaine de musique a ma fille sur le mp3 et je veux pouvoir choisir laquel jouer sans faire 50 actions dans JMQTT

7.2.5.1.1 Création du virtuel

Premièrement je crée un virtuel

On l’attribue a un objet et on l’active, vous pouvez déjà sauvegarder !

on crée une commande info et sauvegarder

Créer une commande action/liste

1- On le nomme
2- on choisi notre commande info créer précédemment
3- On choisit le type liste
4- on adresse a notre commande info
5- on ne met rien
6 – on va insérer notre liste ici

Pour insérer une liste cela se présente sous cette forme.

0| Ascenseur;1| Hard rock;2| Guitare;3| Country et ainsi de suite…

En second lieu on crée une commande info/ Numérique et une commande action curseur

  • On crée une commande info
  • 1- On la nomme
  • 2- On choisit le type numérique
  • 3 et 4 on défini notre domaine d’action : (mes musiques commencent a 101 sur l’awtrix et finissent a 132)
  • on sauvegarde
  • On crée une commande action
  • 5 – on la nomme
  • 6 et 7 on la lie a notre commande info
  • 8 on ne met rien
  • 9 et 10 on défini le domaine d’action comme en 3-4

7.2.5.1.2 Création du scénario

Comme d’habitude il faut commencer par créer un scénario

Attribuez le groupe , l’objet et sauvegarder

On crée des bloc si avec tag(awtrix)==X , X correspondant au numéro de notre virtuel

En action on choisit l’action slider qu’on as créé et on lui défini un chiffre dans la plage de 101 a 132
J’ai mis des logs pour savoir qui est qui
on sauvegarde

il faut retourner a notre virtuel de musique pour définir les tags

Direction la roue crantée de l’action Type

  • 1 on va dans configuration
  • 2 deuxièmement ajouter une action après execution de la commande
  • 3-4 On sélectionne scénario
  • 5 on va chercher le scénario créer
  • 6 Définir les tags dans le scénario en les liant a notre fichier info Typenotif : awtrix=#[Inès][Musique inès][TypeNotif]#
  • 7 On sauvegarde

On en voit le bout …

On retourne dans JMQTT et notre fonction soundfile

et a la place de 101 on place notre commande info liée au slider

et voila c’est fini

Maintenant je peux choisir de jouer tel ou tel musique dans mes scénarios exemple :

7.3 Notify : awtrix/notify

Via la partie Notify on peut à peu près tout faire, on choisit plusieurs paramètres de notre message

7.3.1 Le texte simple : text

{"text":T°_Chambre_#[Marylou][Temperature marylou][Température]#°C}

{« text »= »T° chambre : #[Marylou][Température Marylou][Température 01-0402]#°C »}

le texte m’affiche la température de la chambre de ma fille via l’équipement

7.3.2 le texte en couleur défini : color

On rajoute la fonction color ou on choisit une couleur en rgb, dans notre exemple en vert

{"text":T°_Chambre_#[Marylou][Temperature marylou][Température]#°C ,"color":[0,128,0]}

7.3.3 On répète le message : repeat

{"text": T°_Chambre_#[Marylou][Temperature marylou][Température]#°C,"color":[0,128,0], "repeat" :1}

Là on rajoute la fonction repeat. Avec cette fonction on choisit le nombre de fois ou l’on veut que notre message soit répété. Dans notre cas il est répété 1 fois

7.3.4 On force l’execution : force

{"force":true,"text": T°_Chambre_#[Marylou][Temperature marylou][Température]#°C,"color":[0,128,0], "repeat" :1}

Avec cette fonction notre notification devient prioritaire sur les app en cours

{« force »:true, »text »= »T° chambre : #[Marylou][Température Marylou][Température 01-0402]# °C », »color »:[0,255,0], « repeat »:1}

7.3.5 Texte Bicolore : multicolortext

Ici on choisit quel couleur pour quel mot

{"multiColorText":[{"text":"Youdom ","color":[0,255,0]},{"text":"is awesome","color":[255,0,0]}]}

7.3.6 Texte arc en ciel : Rainbow

La couleur du texte varie comme un arc en ciel

{"force":true,"text": Loic.is.awesome,"rainbow":true}

7.3.7 Icone : icon

Pas besoin de vous faire un dessin, ici on rajoute les icones

{"force":true,"icon":104,"text": Tu.connais.pas.Youdom?,"color":[255,0,0]}

la liste des icones disponible ici,

Mentionnons que vous avez aussi la possibilité de les fabriquer via awtrixer sur votre host .

7.3.8 Bouger icone : moveIcon

Maintenant nous allons voire comment faire bouger notre icone


{"force":true,"icon":103,"moveIcon":true,"repeat":2,"soundfile":103,"text":"vive.youdom","color":[0,255,0]}

7.3.9 Son

Pour en faire un superbe réveil ! comme dans la fonction soundfile on peut choisir quel sera le son, revoir le 7.2.5.1

{"name":"Debout","icon":1286,"repeat":13,"soundfile":120,"text":"Debout...C'est..l'heure..de..se..lever","color":[255,165,0]}

7.3.10 Autres

Il y a d’autres fonctions à découvrir sur le site Awtrix

7.4 Draw : awtrix/draw

Ici on va pouvoir afficher des gifs sur l’intégralité de la matrice. Vu la complexité de ces dessins je n’en ai,pas crée et vous conseille les code du forum

exemple de Yoshi

Voila j’espère que vous aurez survecu à ce tuto très long et qui m’aura couter quelques cheveux blanc

Mais le rendu final est top

8 Exemple de scénario

Mon scénario de gestion en continue de l’affichage

En bonus mon scénario pour calculer le temps restant pour Noël et a l’anniversaire de mes filles

Prenez soins de vous et de vos proches

A bientôt Loïc

Loïc phoenix castillo

Passionné par informatique dès mon plus jeune âge, j'ai arrêté à mes 21 ans pour me consacrer à mes études d'infirmier et faire la fête. Maintenant père de famille, je me réinvestis dans la domotique ! Bref le kif ! Rédacteur en chef de Youdom