[TUTORIEL 2] Installer Node-Red et MQTT Mosquitto sur le Raspberry

Installer Node-Red et MQTT Mosquitto sur le Raspberry

Pour continuer, vous devez avoir terminé le tutoriel précédent et donc avoir un Raspberry correctement installé avec IP fixe.

Lien vers le TUTORIEL #1

Bien, je ne vous cache pas que ça va se corser un peu, on va commencer à jouer le terminal, à entrer des lignes de commandes

Accéder au Raspberry avec le terminal.

Votre Raspberry est branché, il faut maintenant pouvoir y accéder, pour cela nous allons lancer le terminal (ou l’invite de commande).
Pour Windows, allez voir ici pour savoir comment faire :

Personnellement je bosse avec un Mac, j’utilise iTerm plutôt que le terminal d’origine, mais au final, ça revient au même, il faut lancer le terminal.
Pour ceux sur Mac, vous pouvez le récupérer ici : https://www.iterm2.com

C’est parti, on lance le terminal :


NOTE : Certaines commandes débutent par « sudo », dans ce cas, le mot de passe peut vous être demandé, il s’agit du mot de passe du Raspberry.

Pour se connecter au Raspberry, tapez cette commande, en remplaçant les XXX par l’adresse IP de votre Raspberry (ex: ssh pi@192.168.0.7 -p 22) :
ssh pi@XXX.XXX.X.XX -p 22

Si le mot de passe est demandé (il devrait l’être), rentrez celui par défaut : raspberry.
Vous devriez voir cet écran :


Cet écran nous dit que le mot de passe du Raspberry est toujours celui par défaut, il est temps de le changer.

Tapez cette commande pour lancer l’utilitaire de configuration du Raspberry :
sudo raspi-config


Sélectionnez la première option, et changez le mot de passe.

Installer Node-Red sur le Raspberry

En fait Node-Red est déjà installé, mais nous allons tout de même le mettre à jour en lançant cette commande :
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)


Répondre OUI (y) aux questions, et ensuite attendez la fin de l’installation.

Vous devriez avoir cet écran :

Running Node-RED update for user pi at /home/pi on raspbian\n

This can take 20-30 minutes on the slower Pi versions - please wait.

  Stop Node-RED                       ✔
  Remove old version of Node-RED      ✔
  Remove old version of Node.js       ✔
  Install Node.js LTS                 ✔   Node v10.21.0   Npm 6.14.5
  Clean npm cache                     ✔
  Install Node-RED core               ✔   1.0.6
  Move global nodes to local          -
  Install extra Pi nodes              -
  Npm rebuild existing nodes          -
  Add shortcut commands               ✔
  Update systemd script               ✔


Any errors will be logged to   /var/log/nodered-install.log

All done.
  You can now start Node-RED with the command  node-red-start
  or using the icon under   Menu / Programming / Node-RED
  Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880

Started  Wed 17 Jun 07:35:59 BST 2020  -  Finished  Wed 17 Jun 07:39:26 BST 2020

Il est temps de lancer pour la première fois Node-Red :
node-red-start

Si Node-Red se lance correctement, vous devriez voir ça :


Pour quitter CTRL+C afin de revenir à l’invite de commande.

On veut que Node-Red se lance automatiquement quand on redémarre le Raspberry, s’il faut relancer Node-Red à la main à chaque fois, c’est loin d’être pratique.
Lancez cette commande pour que Node-Red redémarre tout seul :
sudo systemctl enable nodered.service

À partir de ce moment, on peut déjà se connecter à l’interface de Node-Red.
Sur votre Mac/PC, ouvrez le navigateur et entrez cette url (remplacez-les XXX par l’IP de votre Raspberry) :
XXX.XXX.X.XX:1880

Vous devriez avoir cet écran qui s’affiche dans votre navigateur.

Bravo ! Node-Red est fonctionnel…
Joie, allégresse, mais pas trop, il reste encore du boulot :slightly_smiling_face:

Installer MQTT Mosquitto sur la Raspberry

On y retourne, c’est parti !

Toujours avec le terminal, lancez cette commande pour vérifier que la Raspberry est à jour :
sudo apt-get update

Ensuite on installe Mosquitto (Broker) :
sudo apt-get install mosquitto

Vérifions si l’installation s’est bien passée avec cette commande :
sudo systemctl status mosquitto

Si c’est bon, voilà l’écran que vous devriez voir :

● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
   Active : active (running) since Wed 2020-06-17 07:50:00 BST; 20s ago
     Docs : man:mosquitto.conf(5)
           man:mosquitto(8)
 Main PID : 973 (mosquitto)
    Tasks: 1 (limit: 2200)
   Memory: 672.0K
   CGroup: /system.slice/mosquitto.service
           └─973 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

Et comme avec Node-Red, on veut le lancer à chaque démarrage dur Raspberry avec cette commande :
sudo systemctl enable mosquitto.service

Afin de finir, on va sécuriser un minimum l’accès à Mosquitto, étant donné que le Raspberry reste en ligne en permanence, c’est préférable.
Il faut créer un mot de passe avec cette commande, pensez à remplacer NOM_UTILISATEUR par celui de votre choix :
sudo mosquitto_passwd -c /etc/mosquitto/passwd NOM_UTILISATEUR

Ensuite lancez l’éditeur de texte nano avec cette commande :
sudo nano /etc/mosquitto/mosquitto.conf

Et rajoutez ces 2 lignes de textes comme indiqué :

allow_anonymous false
password_file /etc/mosquitto/passwd


CTRL+O pour sauver, validez avec ENTER.
CTRL+X pour sortir de l’éditeur.

Enfin, relancez Mosquitto :
sudo systemctl restart mosquitto

Et bien voilà, j’espère que tout le monde à bien suivit, bravo à tous ceux encore en vie :slight_smile:

Dans le prochain tutoriel, nous allons paramétrer MQTT Hub et MQTT Client avec Homey, ensuite nous pourrons (peut-être) nous amuser avec Node-Red.

5 Likes

Merci beaucoup pour ces explications, je n’ai pas encore essayer mais pour moi qui est debutent je pense que j’ai tout compris.

Je vais essayer de mettre en place ce week end mais sur mon Synology…

Parfait, tiens-nous au courant :slightly_smiling_face:

Merci infiniment, je vais essayer de mettre tout ça en place ces prochains jours! Ce qui serait super, c’est que si vous faites des précisions ou des corrections suite à des questions ou commentaires, c’est que vous le fassiez directement dans le tuto et non quelque part caché dans la montagne de futurs commentaires. Comme ça si on s’y met un peu tardivement, c’est directement juste :wink: Merci beaucoup :slight_smile:

Mercy, Thanks
Now I can read it to :grinning:
Very useful
regards
Johan

Très bonne suggestion :+1:

Tu a de la chance, je viens tout juste de poster un tuto pour installer Node-Red et Mosquitto sur Synology.

à+
Guiro

Oui j’ai deja vu et c’est avec sa que je me suis dit que je pourrais le mettre sur le Synology. En plus j’ai le bon modeles un DS218+…

Alors j’ai installer MQTT Client et Hub sur la Homey, Mosquitto et Node-Red sur mon Synology. Ece que j’ai tout fait pour le moment?

Pour l’instant, oui, tu as tout fait :+1:
Il reste juste à configurer MQTT Hub et MQTT Client (mon prochain tuto) sur Homey et c’est bon.

Parfait merci

Merci pour le tuto, pourquoi ne pas installer node-red-contrib-aedes (node) - Node-RED au lieu de Mosquitto?

MQTT Broker for Node-RED based on Aedes.

You can use the MQTT protocol in Node-Red without an external MQTT broker like Mosquitto.

@Joel_Walther
C’est juste que personnellement j’utilise Mosquitto, et qu’il tourne très bien sur mon Raspberry.
Si tu préfères installer Aedes, je pense que tu ne devrais pas avoir de problèmes avec non plus.

Ok, merci pour le feedback.
J’essayerai (dès que je reçois mon PI) et je posterai un retour ici, si intérêt.

Même pobléme pour moi :
Tu expliquesqu’avec la commande on crée un mot de passe mais tu nous fai creer un nom d 'utilisateur. Du coup ?

Bonjour,

sur un Raspberry un peu ancien, (pi model B+) j’ai installé Rasbian Stretch et veut utiliser Node-Red.
Install ok mais erreur au lancement de node-red-start, voir copie message du lancement en fin de message.

Quelqu’un a t’il un conseil à me donner ?

Merci,

PS : débutant sur Raspberry, quelques connaissances linux (utilisateur de Mageia). J’ai aidé un copain à écrire la partie soft sur node-red d’un régulateur d’alim de cumulus à partir de panneaux PV

Messages à l 'exécution de node-red-start :
“”"
Start Node-RED

Once Node-RED has started, point a browser at http://192.168.0.21:1880
On Pi Node-RED works better with the Firefox or Chrome browser

Use node-red-stop to stop Node-RED
Use node-red-start to start Node-RED again
Use node-red-log to view the recent log output
Use sudo systemctl enable nodered.service to autostart Node-RED at every boot
Use sudo systemctl disable nodered.service to disable autostart on boot

To find more nodes and example flows - go to http://flows.nodered.org

Starting as a systemd service.
/usr/lib/node_modules/node-red/node_modules/@babel/runtime/helpers/typeof.js:1
3D2
^
SyntaxError: Invalid or unexpected token
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1124:15)
at Module._compile (node:internal/modules/cjs/loader:1160:27)
at Object.Module._extensions…js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Module.require (node:internal/modules/cjs/loader:1098:19)
at require (node:internal/modules/cjs/helpers:108:18)
at Object. (/usr/lib/node_modules/node-red/node_modules/i18next/dist/cjs/i18next.js:3:15)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
nodered.service: Main process exited, code=exited, status=1/FAILURE
nodered.service: Failed with result ‘exit-code’.
nodered.service: Service RestartSec=20s expired, scheduling restart.
nodered.service: Scheduled restart job, restart counter is at 108.
Stopped Node-RED graphical event wiring tool.
Started Node-RED graphical event wiring tool.

“”"

Bonjour,

J’espère que vous allez bien et je vous remercie d’avance pour votre aide.

Je rencontre un problème avec “MQTT Explorer” : je n’y vois que l’adresse de mon Raspberry Pi (192.168.1.12) ainsi que la sous-catégorie “$SYS”. Malgré de nombreuses recherches, je n’ai pas trouvé de solution pour afficher mes objets connectés. Je vous joins quelques images de ma configuration actuelle et reste bien sûr à votre disposition pour toute question.

Meilleures salutations.