Il y a 45 articles disponibles !

Node-Red et Home Assistant sur Docker

Dernière mise à jour le 24 mars 2024

Comment installer Node-Red sur Docker avec Home Assistant !

Node-Red c’est quoi ?

https://nodered.org/

Pour commencer, bonjour et bienvenue sur mon blog Technologie Geek ! Aujourd’hui, domotique et virtualisation. Voyons comment installer Node-Red sur Docker avec Home Assistant. Node-Red est une plateforme qui vous permet de développer visuellement vos flux de données. Vous pouvez connecter et automatiser des périphériques ainsi que des services et des applications de manière intuitive. En installant Node-Red sur Docker vous disposez également d’une interface graphique agréable et facile à utiliser.

Node-RED vous permet de prendre en charge une large gamme de protocoles de communication et d’intégrations, tels que MQTT, HTTP, JSON, mais aussi des bases de données et des services cloud. Vous pouvez utiliser Node-Red sur Docker dans divers domaines tels que l’automatisation industrielle, l’Internet des objets (IoT), la domotique, la gestion des données et les intégrations système. Il est facile à installer et à déployer sur différents systèmes d’exploitation, y compris les ordinateurs de bureau, les serveurs et les périphériques embarqués.


Que nous faut-il ?

Pour notre test, il vous faut :


Installation de Node-Red sur Docker avec Home Assistant :

Tout d’abord, vous devez déployer votre conteneur Node-Red sur Docker, pour cela rendez vous dans Portainer. Maintenant aller dans votre environnement local puis dans « Stacks » et enfin cliquer sur « Add stack ». Ensuite, dans « Name » donner un nom à votre stack, coller le code ci-dessous dans « web editor » et enfin déployer votre conteneur. Votre conteneur va démarrer puis s’arrêter immédiatement ! c’est normal lisez la suite.

version: "3.8"
services:
  node-red:
    image: nodered/node-red:latest
    environment:
      - TZ=Europe/Paris
    ports:
      - "1880:1880"
    networks:
      - node-red-net
    volumes:
      - /mnt/node-red/data:/data
networks:
  node-red-net:

Stack Node-Red

Lors de l’installation de Node-Red sur Docker, votre volume pour le répertoire de données a été créé par et appartient à notre utilisateur « root », dont l’identifiant est « uid=0 gid=0 ». L’utilisateur Node-Red à l’intérieur du conteneur, qui possède le répertoire /data, a cependant des identifiants différents : « uid=1000 gid=1000 ». Vous pouvez résoudre ce problème en vous connectant en SSH sur votre serveur et changer la propriété du volume Docker à l’utilisateur avec l’ID 1000:1000 en exécutant la commande suivante :

Je suis connecté en « root », la commande « sudo » n’est pas utile, mais je vous la met au cas ou.

sudo chown -R 1000:1000 /mnt/node-red/data

Node-Red et Home Assistant sur Docker

Ensuite, démarrer votre conteneur Node-Red puis rendez vous à l’adresse « http://ip de votre serveur:1880 ». Pour ma part « http//192.168.1.248:1880 ».

Accueil Node-Red

Node-Red dans Home Assistant :

Premièrement, ajoutons maintenant un raccourci Node-Red dans Home Assistant. Pour cela vous devez modifier le fichier « configuration.yaml ». Connectez vous en SSH sur votre serveur, puis aller dans le dossier config de votre conteneur Home Assistant pour ma part « mnt/ha/config ». Enfin, éditer votre fichier avec « nano ».

Node-Red Home Assistant
sudo nano configuration.yaml

Pour finir l’intégration de Node-Red dans Home Assistant sur Docker, copier le code suivant puis coller le dans votre fichier configuration.yaml. Bien sûr, dans « url » il vous faut mettre l’adresse IP de votre serveur puis redémarrer votre Home Assistant.

panel_iframe:
  nodered:
    title: Node-RED
    icon: mdi:lan
    url: http://xxx.xxx.x.xxxx:1880/
    require_admin: true

Configuration.yaml
Node-Red et Home Assistant sur Docker

Configuration de Node-Red dans Home Assistant :

Tout d’abord, pour faire fonctionner Node-Red avec Home Assistant sur Docker, vous devez créer un jeton d’accès longue durée. Pour cela, cliquer sur votre nom d’utilisateur puis créer un jeton et enfin donné lui un nom. Copier le jeton et garder le, Home Assistant ne l’affiche qu’une seul fois.

Ensuite, aller dans Node-Red, cliquer sur les trois barres en haut à droite puis « Manage palette » et sélectionner l’onglet « Install ». Rechercher maintenant « node-red-contrib-home-assistant-websocket » et cliquer sur « Install ».

Pour continuer, vous devez connecter Node-Red et Home Assistant. Pour cela, il faut ajouter un élément « events: all » dans le menu HA de Node-Red. Une fois l’élément ajouter, double cliquer dessus, puis dans « Name » donné lui un nom et enfin cliquer sur le crayon « Add new server… ».

Propriété HA node-red

Pour finir l’installation, il faut entrer les informations de connexion. Donner lui un nom, ajouter l’adresse de votre Home Assistant ainsi que le jeton d’accès créer au début puis enregistrer et enfin cliquer sur « Deploy ».

Voila, l’installation est terminée. Vous pouvez maintenant ajouter mqtt par exemple et commencer à créer vos flux de données !



7 réponses à “Node-Red et Home Assistant sur Docker”

  1. Avatar de François
    François

    merci !
    Article qui explique bien la manip pour node-red pour HA !

    1. Avatar de Stéphane

      Merci pour le commentaire !!

  2. Avatar de Lotharion
    Lotharion

    Merci beaucoup pour le tuto!
    J’ai un problème lorsque je redémarre la box j’ai une erreur avec le code erreur 143.
    Si je le démarre manuellement après l’erreur tous fonctionne correctement.
    J’ai pourtant bien appliqué la ligne « sudo chown -R 1000:1000 /mnt/node-red/data ».
    Une idée?

    1. Avatar de Stéphane

      Bonjour,

      Premièrement, peut-tu me dire sur quel matériel (box ???) et quel OS as-tu installé Docker.
      Ensuite, peut-tu me transmettre les logs lorsque tu as l’erreur.

    2. Avatar de Stéphane

      Essaye d’ajouter « restart: always » à la fin ton docker compose.

      1. Avatar de Lotharion
        Lotharion

        Merci Stéphane pour ton retour rapide. (raspberry pi 5/ avec Docker oui)
        Le fais d’ajouter restart: always fonctionne.
        Merci beaucoup.
        version: « 3.8 »
        services:
        node-red:
        image: nodered/node-red:latest
        environment:
        – TZ=Europe/Paris
        ports:
        – « 1880:1880 »
        networks:
        – node-red-net
        restart: always
        volumes:
        – /mnt/node-red/data:/data
        networks:
        node-red-net:

        Voici mon log pour info:
        2024-12-01T15:25:18.560075431Z 1 Dec 16:25:18 – [info]
        2024-12-01T15:25:18.560126598Z
        2024-12-01T15:25:18.560131690Z Welcome to Node-RED
        2024-12-01T15:25:18.560133838Z ===================
        2024-12-01T15:25:18.560135561Z
        2024-12-01T15:25:18.561066617Z 1 Dec 16:25:18 – [info] Node-RED version: v4.0.5
        2024-12-01T15:25:18.561393007Z 1 Dec 16:25:18 – [info] Node.js version: v20.18.0
        2024-12-01T15:25:18.561568062Z 1 Dec 16:25:18 – [info] Linux 6.6.51+rpt-rpi-2712 arm64 LE
        2024-12-01T15:25:18.733609951Z 1 Dec 16:25:18 – [info] Loading palette nodes
        2024-12-01T15:25:19.689447176Z 1 Dec 16:25:19 – [info] node-red-contrib-home-assistant-websocket v0.74.2 nodes initialized
        2024-12-01T15:25:19.851096997Z 1 Dec 16:25:19 – [info] Settings file : /data/settings.js
        2024-12-01T15:25:19.851898424Z 1 Dec 16:25:19 – [info] Context store : ‘default’ [module=memory]
        2024-12-01T15:25:19.853054722Z 1 Dec 16:25:19 – [info] User directory : /data
        2024-12-01T15:25:19.854274057Z 1 Dec 16:25:19 – [warn] Projects disabled : editorTheme.projects.enabled=false
        2024-12-01T15:25:19.854871539Z 1 Dec 16:25:19 – [info] Flows file : /data/flows.json
        2024-12-01T15:25:19.875027785Z 1 Dec 16:25:19 – [info] Server now running at http://X.X.X.X:XXXX/
        2024-12-01T15:25:19.889734895Z 1 Dec 16:25:19 – [warn]
        2024-12-01T15:25:19.889765636Z
        2024-12-01T15:25:19.889769191Z ———————————————————————
        2024-12-01T15:25:19.889771728Z Your flow credentials file is encrypted using a system-generated key.
        2024-12-01T15:25:19.889773951Z
        2024-12-01T15:25:19.889775691Z If the system-generated key is lost for any reason, your credentials
        2024-12-01T15:25:19.889777710Z file will not be recoverable, you will have to delete it and re-enter
        2024-12-01T15:25:19.889779969Z your credentials.
        2024-12-01T15:25:19.889781877Z
        2024-12-01T15:25:19.889783691Z You should set your own key using the ‘credentialSecret’ option in
        2024-12-01T15:25:19.889785988Z your settings file. Node-RED will then re-encrypt your credentials
        2024-12-01T15:25:19.889788080Z file using your chosen key the next time you deploy a change.
        2024-12-01T15:25:19.889790228Z ———————————————————————
        2024-12-01T15:25:19.889792154Z
        2024-12-01T15:25:20.012243744Z 1 Dec 16:25:20 – [info] Starting flows
        2024-12-01T15:25:20.221136343Z 1 Dec 16:25:20 – [info] Started flows
        2024-12-01T15:25:20.221801955Z 1 Dec 16:25:20 – [info] [server:Home Assistant] Connecting to http://X.X.X.X:XXXX
        2024-12-01T15:25:20.247296948Z 1 Dec 16:25:20 – [info] [server:Home Assistant] Connected to http://X.X.X.X:XXXX
        2024-12-01T15:31:13.797270582Z 1 Dec 16:31:13 – [info] Stopping flows
        2024-12-01T15:31:13.854947352Z 1 Dec 16:31:13 – [info] [server:Home Assistant] Closing connection to http://X.X.X.X:XXXX
        2024-12-01T15:31:13.864801196Z 1 Dec 16:31:13 – [info] Stopped flows
        2024-12-01T15:31:48.284574710Z 1 Dec 16:31:48 – [info]
        2024-12-01T15:31:48.287563728Z
        2024-12-01T15:31:48.287576228Z Welcome to Node-RED
        2024-12-01T15:31:48.287579377Z ===================
        2024-12-01T15:31:48.287581932Z
        2024-12-01T15:31:48.287588303Z 1 Dec 16:31:48 – [info] Node-RED version: v4.0.5
        2024-12-01T15:31:48.287590969Z 1 Dec 16:31:48 – [info] Node.js version: v20.18.0
        2024-12-01T15:31:48.287593543Z 1 Dec 16:31:48 – [info] Linux 6.6.51+rpt-rpi-2712 arm64 LE
        2024-12-01T15:31:48.573910173Z 1 Dec 16:31:48 – [info] Loading palette nodes
        2024-12-01T15:31:50.770735412Z 1 Dec 16:31:50 – [info] node-red-contrib-home-assistant-websocket v0.74.2 nodes initialized
        2024-12-01T15:31:51.066949893Z 1 Dec 16:31:51 – [info] Settings file : /data/settings.js
        2024-12-01T15:31:51.067516116Z 1 Dec 16:31:51 – [info] Context store : ‘default’ [module=memory]
        2024-12-01T15:31:51.068319782Z 1 Dec 16:31:51 – [info] User directory : /data
        2024-12-01T15:31:51.068674708Z 1 Dec 16:31:51 – [warn] Projects disabled : editorTheme.projects.enabled=false
        2024-12-01T15:31:51.069480782Z 1 Dec 16:31:51 – [info] Flows file : /data/flows.json
        2024-12-01T15:31:51.105478875Z 1 Dec 16:31:51 – [info] Server now running at http://X.X.X.X:XXXX
        2024-12-01T15:31:51.118375116Z 1 Dec 16:31:51 – [warn]
        2024-12-01T15:31:51.118403930Z
        2024-12-01T15:31:51.118407153Z ———————————————————————
        2024-12-01T15:31:51.118410245Z Your flow credentials file is encrypted using a system-generated key.
        2024-12-01T15:31:51.118412930Z
        2024-12-01T15:31:51.118415356Z If the system-generated key is lost for any reason, your credentials
        2024-12-01T15:31:51.118418023Z file will not be recoverable, you will have to delete it and re-enter
        2024-12-01T15:31:51.118420782Z your credentials.
        2024-12-01T15:31:51.118423227Z
        2024-12-01T15:31:51.118425523Z You should set your own key using the ‘credentialSecret’ option in
        2024-12-01T15:31:51.118428116Z your settings file. Node-RED will then re-encrypt your credentials
        2024-12-01T15:31:51.118431042Z file using your chosen key the next time you deploy a change.
        2024-12-01T15:31:51.118433579Z ———————————————————————
        2024-12-01T15:31:51.118436190Z
        2024-12-01T15:31:51.176618282Z 1 Dec 16:31:51 – [info] Starting flows
        2024-12-01T15:31:51.401629393Z 1 Dec 16:31:51 – [info] Started flows
        2024-12-01T15:31:51.413108375Z 1 Dec 16:31:51 – [info] [server:Home Assistant] Connecting to http://X.X.X.X:XXXX
        2024-12-01T15:31:51.435349412Z 1 Dec 16:31:51 – [info] [server:Home Assistant] Connected to http://X.X.X.X:XXXX
        2024-12-01T15:25:18.560075431Z 1 Dec 16:25:18 – [info]
        2024-12-01T15:25:18.560126598Z
        2024-12-01T15:25:18.560131690Z Welcome to Node-RED
        2024-12-01T15:25:18.560133838Z ===================
        2024-12-01T15:25:18.560135561Z
        2024-12-01T15:25:18.561066617Z 1 Dec 16:25:18 – [info] Node-RED version: v4.0.5
        2024-12-01T15:25:18.561393007Z 1 Dec 16:25:18 – [info] Node.js version: v20.18.0
        2024-12-01T15:25:18.561568062Z 1 Dec 16:25:18 – [info] Linux 6.6.51+rpt-rpi-2712 arm64 LE
        2024-12-01T15:25:18.733609951Z 1 Dec 16:25:18 – [info] Loading palette nodes
        2024-12-01T15:25:19.689447176Z 1 Dec 16:25:19 – [info] node-red-contrib-home-assistant-websocket v0.74.2 nodes initialized
        2024-12-01T15:25:19.851096997Z 1 Dec 16:25:19 – [info] Settings file : /data/settings.js
        2024-12-01T15:25:19.851898424Z 1 Dec 16:25:19 – [info] Context store : ‘default’ [module=memory]
        2024-12-01T15:25:19.853054722Z 1 Dec 16:25:19 – [info] User directory : /data
        2024-12-01T15:25:19.854274057Z 1 Dec 16:25:19 – [warn] Projects disabled : editorTheme.projects.enabled=false
        2024-12-01T15:25:19.854871539Z 1 Dec 16:25:19 – [info] Flows file : /data/flows.json
        2024-12-01T15:25:19.875027785Z 1 Dec 16:25:19 – [info] Server now running at http://X.X.X.X:XXXX/
        2024-12-01T15:25:19.889734895Z 1 Dec 16:25:19 – [warn]
        2024-12-01T15:25:19.889765636Z
        2024-12-01T15:25:19.889769191Z ———————————————————————
        2024-12-01T15:25:19.889771728Z Your flow credentials file is encrypted using a system-generated key.
        2024-12-01T15:25:19.889773951Z
        2024-12-01T15:25:19.889775691Z If the system-generated key is lost for any reason, your credentials
        2024-12-01T15:25:19.889777710Z file will not be recoverable, you will have to delete it and re-enter
        2024-12-01T15:25:19.889779969Z your credentials.
        2024-12-01T15:25:19.889781877Z
        2024-12-01T15:25:19.889783691Z You should set your own key using the ‘credentialSecret’ option in
        2024-12-01T15:25:19.889785988Z your settings file. Node-RED will then re-encrypt your credentials
        2024-12-01T15:25:19.889788080Z file using your chosen key the next time you deploy a change.
        2024-12-01T15:25:19.889790228Z ———————————————————————
        2024-12-01T15:25:19.889792154Z
        2024-12-01T15:25:20.012243744Z 1 Dec 16:25:20 – [info] Starting flows
        2024-12-01T15:25:20.221136343Z 1 Dec 16:25:20 – [info] Started flows
        2024-12-01T15:25:20.221801955Z 1 Dec 16:25:20 – [info] [server:Home Assistant] Connecting to http://X.X.X.X:XXXX
        2024-12-01T15:25:20.247296948Z 1 Dec 16:25:20 – [info] [server:Home Assistant] Connected to http://X.X.X.X:XXXX
        2024-12-01T15:31:13.797270582Z 1 Dec 16:31:13 – [info] Stopping flows
        2024-12-01T15:31:13.854947352Z 1 Dec 16:31:13 – [info] [server:Home Assistant] Closing connection to http://X.X.X.X:XXXX
        2024-12-01T15:31:13.864801196Z 1 Dec 16:31:13 – [info] Stopped flows
        2024-12-01T15:31:48.284574710Z 1 Dec 16:31:48 – [info]
        2024-12-01T15:31:48.287563728Z
        2024-12-01T15:31:48.287576228Z Welcome to Node-RED
        2024-12-01T15:31:48.287579377Z ===================
        2024-12-01T15:31:48.287581932Z
        2024-12-01T15:31:48.287588303Z 1 Dec 16:31:48 – [info] Node-RED version: v4.0.5
        2024-12-01T15:31:48.287590969Z 1 Dec 16:31:48 – [info] Node.js version: v20.18.0
        2024-12-01T15:31:48.287593543Z 1 Dec 16:31:48 – [info] Linux 6.6.51+rpt-rpi-2712 arm64 LE
        2024-12-01T15:31:48.573910173Z 1 Dec 16:31:48 – [info] Loading palette nodes
        2024-12-01T15:31:50.770735412Z 1 Dec 16:31:50 – [info] node-red-contrib-home-assistant-websocket v0.74.2 nodes initialized
        2024-12-01T15:31:51.066949893Z 1 Dec 16:31:51 – [info] Settings file : /data/settings.js
        2024-12-01T15:31:51.067516116Z 1 Dec 16:31:51 – [info] Context store : ‘default’ [module=memory]
        2024-12-01T15:31:51.068319782Z 1 Dec 16:31:51 – [info] User directory : /data
        2024-12-01T15:31:51.068674708Z 1 Dec 16:31:51 – [warn] Projects disabled : editorTheme.projects.enabled=false
        2024-12-01T15:31:51.069480782Z 1 Dec 16:31:51 – [info] Flows file : /data/flows.json
        2024-12-01T15:31:51.105478875Z 1 Dec 16:31:51 – [info] Server now running at http://X.X.X.X:XXXX
        2024-12-01T15:31:51.118375116Z 1 Dec 16:31:51 – [warn]
        2024-12-01T15:31:51.118403930Z
        2024-12-01T15:31:51.118407153Z ———————————————————————
        2024-12-01T15:31:51.118410245Z Your flow credentials file is encrypted using a system-generated key.
        2024-12-01T15:31:51.118412930Z
        2024-12-01T15:31:51.118415356Z If the system-generated key is lost for any reason, your credentials
        2024-12-01T15:31:51.118418023Z file will not be recoverable, you will have to delete it and re-enter
        2024-12-01T15:31:51.118420782Z your credentials.
        2024-12-01T15:31:51.118423227Z
        2024-12-01T15:31:51.118425523Z You should set your own key using the ‘credentialSecret’ option in
        2024-12-01T15:31:51.118428116Z your settings file. Node-RED will then re-encrypt your credentials
        2024-12-01T15:31:51.118431042Z file using your chosen key the next time you deploy a change.
        2024-12-01T15:31:51.118433579Z ———————————————————————
        2024-12-01T15:31:51.118436190Z
        2024-12-01T15:31:51.176618282Z 1 Dec 16:31:51 – [info] Starting flows
        2024-12-01T15:31:51.401629393Z 1 Dec 16:31:51 – [info] Started flows
        2024-12-01T15:31:51.413108375Z 1 Dec 16:31:51 – [info] [server:Home Assistant] Connecting to http://X.X.X.X:XXXX
        2024-12-01T15:31:51.435349412Z 1 Dec 16:31:51 – [info] [server:Home Assistant] Connected to http://X.X.X.X:XXXX

      2. Avatar de Stéphane

        Content de t’avoir aidé !

Laisser un commentaire

Technologie Geek

bonjour !

Inscrivez-vous pour recevoir nos nouveaux articles !

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Bienvenue sur mon blog Technologie Geek ! Je m'appelle Stéphane, je suis chef d'entreprise et Je suis un passionné de technologie, découvrez mes articles et mes test sur l'informatique, la domotique ainsi que la virtualisation.

Je crois que chacun peut apprendre quelque chose de nouveau chaque jour. Partager ses connaissances peut enrichir la vie des autres. C’est pourquoi j’ai créé ce blog pour offrir à notre communauté une plateforme pour partager des idées, des opinions et des expériences.