Informations clés
Type : Bibliothèque open source d’implémentation du protocole Z-Wave
Langage : TypeScript / Node.js
Licence : MIT (libre d’utilisation, modification et distribution)
GitHub : github.com/zwave-js/node-zwave-js
Mainteneurs : Dominic Griesel (lead) + communauté — sponsorisé par Nabu Casa (Home Assistant)
Appareils supportés : 3 000+ appareils dans la base de données officielle
Utilisé par Home Assistant (via Z-Wave JS Integration), Jeedom (plugin Z-Wave JS), IoBroker, Homey
Interface UI : Z-Wave JS UI — application web standalone ou add-on Home Assistant

Qu’est-ce que Z-Wave JS ?
Z-Wave JS est une implémentation open source complète du protocole Z-Wave en TypeScript, fonctionnant sur Node.js. C’est le moteur qui traduit les commandes de votre box domotique en trames radio Z-Wave et inversement — interprétant les messages bruts des appareils pour les exposer comme des entités compréhensibles (température, état d’une prise, niveau d’une batterie) dans votre interface domotique.
Initié par Dominic Griesel et maintenu activement par la communauté open source avec le soutien financier de Nabu Casa (l’entreprise derrière Home Assistant), Z-Wave JS est aujourd’hui le moteur Z-Wave le plus complet, le mieux maintenu et le plus utilisé de l’écosystème domotique open source mondial. Il a remplacé OpenZWave — l’ancienne bibliothèque de référence — sur toutes les plateformes majeures entre 2020 et 2022.
Ce que Z-Wave JS apporte concrètement
- Support complet de S2 et SmartStart : Z-Wave JS implémente intégralement le protocole de sécurité S2 (échange ECDH, authentification DSK, trois classes de sécurité) et SmartStart. L’inclusion sécurisée est disponible sur toutes les plateformes qui l’utilisent — Home Assistant, Jeedom, IoBroker.
- Base de données de 3 000+ appareils : Z-Wave JS maintient une base de données publique (github.com/zwave-js/node-zwave-js/tree/master/packages/config/config/devices) qui décrit les paramètres de configuration, les Command Classes et les comportements spécifiques de chaque appareil. Cette base est contributive — n’importe qui peut soumettre un nouvel appareil via Pull Request.
- Mises à jour OTA : Z-Wave JS gère les mises à jour Over The Air des firmwares d’appareils, avec des mécanismes de reprise sur erreur et de vérification d’intégrité. Les fabricants comme Zooz et Aeotec publient leurs firmwares dans un dépôt centralisé que Z-Wave JS peut interroger automatiquement.
- Z-Wave JS UI : l’interface web Z-Wave JS UI (anciennement zwavejs2mqtt) offre une visualisation graphique du réseau (Network Map), un accès complet aux paramètres de configuration de chaque appareil, les logs détaillés du protocole, et les outils de diagnostic (NVM Backup, Heal Network, Remove Failed Node).
- Support Z-Wave Long Range : Z-Wave JS supporte Z-Wave LR depuis la version 11, permettant aux contrôleurs 800 Series d’exploiter la portée étendue de 1,6 km avec les appareils compatibles.
Z-Wave JS UI : l’interface de gestion avancée
Z-Wave JS UI est l’interface graphique web qui se pose par-dessus le moteur Z-Wave JS. Elle est disponible comme add-on Home Assistant (recommandé) ou comme application standalone Docker. Elle expose des fonctionnalités que les interfaces natives de Home Assistant et Jeedom ne proposent pas directement :
- Network Map interactive : représentation graphique de la topologie du réseau Z-Wave avec les routes actives, les valeurs RSSI/LQI par lien, et l’identification visuelle des nœuds problématiques.
- Paramètres de configuration avancés : accès à tous les paramètres de configuration Z-Wave d’un appareil (numérotés selon la spécification du fabricant), avec descriptions en clair depuis la base de données Z-Wave JS.
NVM Backup et restauration : sauvegarde et restauration de la mémoire non volatile du contrôleur Z-Wave — la procédure de récupération complète du réseau en cas de remplacement du contrôleur.
Comment accéder à Z-Wave JS UI dans Home Assistant : Paramètres → Appareils et services → Z-Wave JS → Ouvrir Z-Wave JS UI
Comment accéder à Z-Wave JS UI dans Jeedom : Plugins → Protocole domotique → Z-Wave JS → bouton « Z-Wave JS UI »


