Node-RED vs Home Assistant est un débat classique pour quiconque automatise une maison, un labo ou un petit bâtiment, et la réponse honnête est que ces outils résolvent des problèmes qui se recoupent sans être identiques. Ce guide compare la façon dont chacun construit des automatisations, gère MQTT et où chacun excelle, puis montre comment les faire tourner côte à côte sur un même broker MQTT pour ne pas avoir à choisir.
Deux outils différents qui se recoupent
Home Assistant est une plateforme domotique. Son idée centrale est l'entité : une lampe, un capteur, un interrupteur ou un thermostat, avec un état et des attributs. Des centaines d'intégrations transforment les appareils des fabricants et les services cloud en entités, et le tableau de bord, l'historique, les vues énergie et les assistants vocaux fonctionnent tous à partir de ces entités. Les automatisations ne sont qu'une fonctionnalité parmi d'autres.
Node-RED est un outil généraliste de programmation par flux, porté par l'OpenJS Foundation. Il n'a aucune notion de maison, de pièce ou d'entité. Il a des messages qui circulent entre des nœuds : MQTT, HTTP, bases de données, fichiers, ports série, protocoles industriels et des milliers de nœuds communautaires. L'automatisation est son métier, et il l'exerce aussi volontiers pour les usines et les intégrations cloud que pour les salons.
La comparaison porte donc moins sur « lequel est le meilleur » que sur « quel modèle mental convient à cette automatisation précise ».
Node-RED vs Home Assistant en un coup d'œil
| Aspect | Home Assistant | Node-RED |
|---|---|---|
| Rôle principal | Plateforme domotique avec interface, historique et intégrations | Intégration et automatisation généralistes par flux |
| Modèle d'automatisation | Déclencheurs, conditions et actions sur des entités | Messages qui traversent des nœuds reliés |
| Création | Éditeur visuel d'automatisations, YAML, blueprints, scripts | Éditeur visuel de flows plus nœuds function en JavaScript |
| MQTT | Intégration MQTT native avec découverte des appareils | Nœuds mqtt in et mqtt out natifs, toute structure de topics |
| Prise en charge des appareils | Très large catalogue d'intégrations grand public | Nœuds au niveau protocole ; les appareils sont ce que vous câblez |
| État et historique | Intégrés pour chaque entité | À ajouter vous-même : contexte, bases de données ou tableaux de bord |
| Logique complexe | Templates et scripts, qui peuvent devenir difficiles à lire | Nœuds function, subflows, boucles et transformations de données |
| Usage hors maison | Possible mais peu naturel | Courant en intégration industrielle et IT |
| Débogage | Les traces d'automatisation montrent chaque exécution pas à pas | Barre de debug, statut des nœuds et inspection des messages |
| Installation typique | Home Assistant OS sur un Pi ou un mini-PC, ou en conteneur | npm, Docker ou add-on Home Assistant |
Comment chaque approche construit une automatisation
Prenons une règle simple : quand la température de la serre dépasse 30 degrés, allumer le ventilateur.
Dans Home Assistant
D'abord, le capteur et le ventilateur MQTT deviennent des entités. Une fois l'intégration MQTT configurée, vous pouvez les déclarer dans configuration.yaml :
mqtt:
sensor:
- name: "Greenhouse temperature"
unique_id: greenhouse_temperature
state_topic: "connectmq/demo/ha5k2m/greenhouse/temperature"
unit_of_measurement: "°C"
device_class: temperature
switch:
- name: "Greenhouse fan"
unique_id: greenhouse_fan
command_topic: "connectmq/demo/ha5k2m/greenhouse/fan/set"
state_topic: "connectmq/demo/ha5k2m/greenhouse/fan/state"
payload_on: "ON"
payload_off: "OFF"
L'automatisation porte ensuite sur des entités, pas sur des topics :
automation:
- alias: "Greenhouse fan on when hot"
triggers:
- trigger: numeric_state
entity_id: sensor.greenhouse_temperature
above: 30
for: "00:02:00"
actions:
- action: switch.turn_on
target:
entity_id: switch.greenhouse_fan
La clause for, le graphique d'historique du capteur et la trace de chaque exécution sont fournis d'office. Vous pouvez construire la même chose dans l'éditeur visuel sans toucher au YAML.
Dans Node-RED
Node-RED travaille directement sur les topics et les messages. Un nœud mqtt in s'abonne au topic de température, un nœud function applique la règle et un nœud mqtt out publie la commande :
// Turn the fan on above 30, off below 27, only on change
const t = Number(msg.payload);
if (isNaN(t)) return null;
const fanOn = context.get("fanOn") || false;
if (!fanOn && t > 30) {
context.set("fanOn", true);
return { topic: "connectmq/demo/ha5k2m/greenhouse/fan/set", payload: "ON" };
}
if (fanOn && t < 27) {
context.set("fanOn", false);
return { topic: "connectmq/demo/ha5k2m/greenhouse/fan/set", payload: "OFF" };
}
return null;
Pas de registre d'entités, pas d'historique ni de tableau de bord, sauf si vous les ajoutez. En échange, vous avez un contrôle total : une hystérésis en trois lignes, un accès facile à n'importe quel protocole et des transformations qui seraient laborieuses dans des templates YAML.
Là où Home Assistant l'emporte
- Appareils grand public. Si un produit dispose d'une intégration Home Assistant, vous obtenez ses entités, états et commandes presque sans effort.
- Une interface pensée pour la maison. Tableaux de bord, application mobile, détection de présence, vues énergie et commande vocale sont intégrés.
- Des automatisations lisibles pour les règles simples. Le schéma déclencheur, condition, action est facile à comprendre et à modifier pour les autres membres du foyer.
- Les traces d'automatisation. Voir pourquoi une règle s'est déclenchée ou non est excellent pour déboguer les automatisations du quotidien.
Là où Node-RED l'emporte
- Logique complexe et mise en forme des données. Machines à états, agrégation, limitation de débit et transformations JSON sont naturelles dans les nœuds function.
- Protocoles et systèmes au-delà de la maison. Modbus, OPC UA, bases de données, API HTTP et e-mail sont à une installation de palette près. Consultez nos guides Node-RED avec MySQL et endpoints HTTP Node-RED.
- Le travail MQTT brut. Toute structure de topics, abonnements avec wildcards, retained messages et propriétés MQTT 5, sans devoir d'abord modéliser chaque appareil en entité.
- La réutilisation hors de la maison. Les mêmes compétences s'appliquent à un atelier, une ferme ou une ligne de production.
Faire tourner les deux sur un même broker MQTT
Vous n'êtes pas obligé de choisir. Beaucoup d'installations utilisent Home Assistant pour les appareils et l'interface, et Node-RED pour la logique lourde et les intégrations. MQTT est le lien le plus propre entre les deux, car ce sont deux clients MQTT ordinaires du même broker. Jeedom et Domoticz savent d'ailleurs eux aussi communiquer en MQTT et peuvent se brancher sur le même principe.
Sensors / ESP32 / Zigbee2MQTT ──┐
├──> MQTT broker <──> Home Assistant (entities, UI, simple automations)
Node-RED (logic, integrations) ─┘ <──> Node-RED (complex flows, databases, APIs)
Quelques règles gardent cette organisation saine :
- Un seul propriétaire par décision. Décidez si le ventilateur de la serre est piloté par Home Assistant ou par Node-RED, jamais les deux. Deux automatisations qui se disputent un même topic de commande sont la cause la plus fréquente des bugs du type « la lampe se rallume toute seule ».
- Des branches de topics séparées. Les appareils publient leur état sous
.../<device>/stateet acceptent les commandes sous.../<device>/set. Node-RED publie les données dérivées sous sa propre branche, par exemple.../computed/..., que Home Assistant peut lire comme capteurs supplémentaires. - Des client IDs uniques. Chaque instance Home Assistant, chaque instance Node-RED et chaque appareil a besoin de son propre client ID. Des IDs en double poussent le broker à déconnecter l'ancienne session, ce qui se traduit par des connexions qui tombent toutes les quelques secondes.
- État retenu, commandes non retenues. Retenez les topics d'état pour qu'un Home Assistant redémarré voie les valeurs actuelles ; ne retenez pas les commandes, sinon un ventilateur peut se rallumer après chaque reconnexion.
- Comptez vos connexions. Home Assistant, Node-RED, Zigbee2MQTT et une douzaine de cartes ESP32, cela s'additionne. L'offre gratuite ConnectMQ Serverless autorise jusqu'à 25 connexions, ce qui couvre la plupart des foyers ; les installations plus grandes passent à une offre payante.
Vous pouvez aussi connecter Node-RED à l'API de Home Assistant avec les nœuds node-red-contrib-home-assistant-websocket, c'est ainsi que fonctionne le populaire add-on Node-RED. Node-RED accède alors à toutes les entités Home Assistant, y compris celles qui ne passent pas par MQTT. L'approche MQTT est plus simple à raisonner quand vos appareils parlent déjà MQTT, et elle garde les deux outils indépendants : chacun peut être redémarré ou remplacé sans casser l'autre.
Pointer les deux vers le même broker
Pour vos expériences, les deux outils peuvent utiliser le serveur MQTT public gratuit broker.connectmq.com sur le port 1883 avec un préfixe unique comme connectmq/demo/ha5k2m. Pour une vraie maison connectée, utilisez des identifiants privés sur TLS. Dans Home Assistant, configurez l'intégration MQTT sous Paramètres → Appareils et services en saisissant l'hôte du broker, le port 8883, YOUR_USERNAME et YOUR_PASSWORD, et en activant TLS dans les options avancées. Dans Node-RED, définissez le même hôte et le même port dans le nœud de configuration mqtt-broker avec TLS activé et un client ID différent. Le tutoriel Node-RED MQTT détaille le nœud de configuration, et le comparatif Node-RED vs n8n mérite une lecture si vous envisagez aussi un outil de workflows pour les services cloud.
Pourquoi utiliser un broker cloud plutôt que le broker de l'add-on ?
Home Assistant OS propose un add-on Mosquitto local, et pour une seule maison où tout est sur le même réseau, c'est parfaitement raisonnable. Un broker MQTT cloud devient intéressant quand les appareils sont répartis sur plusieurs lieux (une résidence secondaire, une serre sur un autre terrain, l'appartement d'un proche), quand vous voulez redémarrer ou reconstruire la machine Home Assistant sans couper la couche de messagerie, ou quand vous préférez ne pas ouvrir de ports sur votre box. Un broker MQTT managé comme ConnectMQ est joignable de partout via TLS, et son portail inclut un explorateur de topics en direct et des règles d'alerte sur seuil, pratiques pour vérifier ce que Home Assistant et Node-RED publient réellement. Notre guide comment choisir un broker MQTT pour l'IoT passe en revue les compromis.
Recommandation
- Commencez par Home Assistant si votre objectif est une maison connectée avec surtout des appareils grand public, une interface accessible à toute la famille et des règles simples.
- Commencez par Node-RED si vos automatisations impliquent une logique lourde, des protocoles inhabituels, des bases de données ou des équipements hors maison.
- Utilisez les deux, reliés par un même broker MQTT, dès que vos automatisations Home Assistant commencent à exiger des templates imbriqués dans des templates. Laissez chaque outil prendre les décisions pour lesquelles il est le meilleur.
Connectez Home Assistant et Node-RED à ConnectMQ
Créez un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire, copiez le nom d'utilisateur, le mot de passe et le client ID générés, et pointez Home Assistant comme Node-RED vers ce broker via TLS sur le port 8883. Donnez à chaque outil ses propres identifiants ou son propre client ID, et vous disposez d'une colonne vertébrale de messagerie partagée qui ne dépend d'aucune machine de votre maison.
Questions fréquentes
Node-RED est-il meilleur que les automatisations Home Assistant ?
Aucun n'est strictement meilleur. Les automatisations Home Assistant sont plus simples pour les règles basées sur des entités et viennent avec traces et historique, tandis que Node-RED gère plus confortablement la logique complexe, la transformation de données et les protocoles hors maison.
Home Assistant et Node-RED peuvent-ils utiliser le même broker MQTT ?
Oui. Ce sont deux clients MQTT standard. Donnez à chacun un client ID unique, convenez de branches de topics pour l'état et les commandes, et assurez-vous qu'un seul d'entre eux pilote chaque appareil.
Ai-je besoin de l'add-on Node-RED pour utiliser Node-RED avec Home Assistant ?
Non. L'add-on est pratique sous Home Assistant OS, mais Node-RED peut tourner n'importe où et dialoguer avec Home Assistant via un broker MQTT partagé ou les nœuds websocket de Home Assistant.
Combien de connexions MQTT faut-il pour une maison connectée typique ?
Une par appareil ou passerelle, plus une pour Home Assistant, une pour Node-RED et une pour chaque pont comme Zigbee2MQTT. Beaucoup de foyers tiennent dans les 25 connexions de l'offre gratuite ConnectMQ Serverless.



