Présentation et premiers pas avec le Z-Uno
Comme vous l’avez probablement lu dans ma biographie, j’ai une formation en électronique et je reste toujours aussi passionné. Malheureusement je ne pratique plus l’électronique dans le cadre de mon activité professionnelle depuis quelques années.
Je suis retourné à l’électronique pratiquement en même temps que lors de ma découverte de la domotique il y a 6 ans. Je la pratique dans mes temps libres. Comme mes temps libres étaient principalement consacrés au plugin Z-Wave les deux dernières années, mes projets personnels n’avançaient plus et dormaient sur les coins de mon atelier.
Depuis septembre j’ai normalement plus de temps pour moi, mais nous avons effectué des gros travaux de rénovations dans notre cuisine et les deux derniers mois ont été plutôt intenses. Les travaux sont maintenant globalement terminés, j’ai dépoussiéré une petite boîte que j’avais laissée de côté.
Il s’agit du Z-Uno de la marque ZWave.me.
C’est quoi un Z-Uno
Le Z-Uno est une plateforme de développement qui vous permet de créer vos propres modules Z-Wave à la sauce DIY. Le Z-Uno est un mixte entre le protocole Z-Wave et la programmation Arduino, d’où le nom Z-Uno.
Pour les habitués aux projets Arduino, le Z-Uno reprend tous les concepts de solutions matérielles et logiciels des Arduinos et de son IDE. C’est donc très simple à utiliser, tout en gardant une flexibilité maximale.
Le Z-Uno vous permettra de réaliser vous-mêmes un module Z-Wave qui n’existerait pas et afin de répondre à des besoins spécifiques à votre domotique. Si vous êtes fan d’Arduino et que vous possédez déjà un réseau Z-Wave le Z-Uno devrait vous plaire.
Je vais ici vous présenter quelques possibilités du Z-Uno et comment démarrer avec lui. Dans d’autres billets je pourrai aborder des réalisations spécifiques. Ce sujet sera donc un sommaire pour se faire une idée plus claire de ce qu’on peut en tirer.
La programmation de Z-Uno s’effectue à l’aide de l’IDE Arduino en écrivant son code en langage C « simplifié » comme n’importe quelle autre carte microcontrôleur. Le site Z-Uno comporte de nombreux exemples et des tutoriels pour bien débuter dans la réalisation de votre propre projet. La plupart des librairies et capteurs déjà compatibles Arduino seront aussi compatibles pour votre Z-Uno.
Le Z-Uno est bien entendu compatible avec votre passerelle domotique préférée jeedom. Il l’est aussi avec de nombreux autres comme SmartThings, RaZberry, Fibaro, Zipato et encore bien d’autres.
Le Z-Uno sera aussi une excellente source d’information pour mieux comprendre le protocole Z-Wave comme vous serez amené à coder votre propre module.
Que pouvez-vous fabriquer
Le catalogue de produits Z-Wave bien que très étoffé avec plus de 2100 produits, pourrait ne pas contenir un module existentiel à votre maison intelligente. Le Z-Uno a été conçu pour vous permettre de créer vos propres modules. Je ne pense pas qu’il soit rentable de recréer un module existant avec un Z-Uno. Mais dans le cheminement d’apprentissage un contact sec, un relais ou une sonde température et humidité seront à mon avis des incontournables.
Le prix du Z-Uno est dans les 60€, donc gros modo le même prix qu’un micromodule. Il est disponible en France chez domadoo.fr ou en Suisse chez swiss-domotique.ch aussi dans la plupart de vos boutiques domotiques préférées comme amazon.
Dans les idées de projets à réaliser on pourrait retrouver :
- Un capteur de distance pour l’aide au stationnement dans le garage,
- Une station météo avec vos choix de capteurs,
- Un multi capteurs pour votre piscine,
- Un compteur de tics, pour mesure ça consommation d’eau,
- Une commande basse tension,
- Un relais de puissance pour moteur,
- Un clavier à piles pour lancer des scénarios ou associations directes.
- Centrale de gestion de vannes.
Il faut aimer bricoler et ne pas compter son temps pour se lancer avec le Z-Uno, comme la plupart des projets et plateforme DIY en fait. Si vous faites déjà du mySensors vous ne serez pas dépaysé et vous savez qu’il faut relever les manches.
Spécifications détaillées
Petite énumération des caractéristiques du Z-Uno.
- 28 kB de mémoire Flash pour votre programme.
- 2 kB RAM.
- Z-Wave transmetteur à 9.6/40/100 kbps.
- 26 GPIO,
- 4 ADC.
- 5 PWM.
- 2 UART.
- 1 port série USB.
- 16 kB EEPROM.
- 1 SPI (maître ou esclave)
- 4 contrôleurs IR, 1 IR avec la capacité d’apprentissage.
- 1 TRIAC/ZEROX utile pour le contrôle d’une sortie variateur.
- 3 entrées de type interruptions.
- 1 Timer à 4 MHz
- I2C (software)
- 1-Wire (software)
- 1 interface 8×6 pour clavier.
- 2 LEDs de services.
- 1 bouton de service.
- 1 LED de test.
Possibilités d’alimentation :
- USB 5 VDC
- externe 5 VDC ou 3.3 VDC
- externe 7-18 VDC
- batterie 3 VDC (connecteur spécifique)
Supporte les modes toujours allumé, dormant ou FLiRS (écoute fréquente).
Caractéristiques Z-Wave prises en charge:
- Puce Z-Wave Plus (Puce ZM5101 de chez Sigma Designs).
- Choix de la fréquence Z-Wave.
- Prise en charge de la sécurité AES 128 bits (inclusion en mode sécurisé).
- Support des mises à jour via USB ou OTA.
- Supporte jusqu’à 10 canaux (Multichannel)
Classes de commandes supportées
- Association
- Association Group Information
- Battery (si module sur piles ou FLiRS)
- Basic
- Configuration
- Device Reset Locally
- Firmware Update
- Manufacturer Specific
- MultiChannel
- MultiChannel Association
- Power Level
- Security
- Version
- Wakeup (pour les module sur piles)
- Z-Wave Plus Info
Types de canaux Z-Wave:
- Commutateur binaire (Binary Switch)
- Commutateur multiniveau (Multilevel Switch)
- Capteur binaire (Binary Sensor)
- Capteur multiniveau (Multilevel Sensor)
- Compteur (Meter)
Associations directes
Supporte jusqu’à 5 noeuds dans un groupe de contrôle pour les associations directes.
Les associations directes peuvent notifier les classes de commande suivantes:
- Basic
- Door Lock
- Switch Multilevel
- Scene Activation
Pinout
Voici les 26 GPIO avec leurs fonctions spécifiques.
Le Z-Uno fait 39×20×16mm avec tous ces composants, il est aussi possible d’y brancher une antenne externe en soudant un connecteur u.fl.
Mise en place de l’environnement
C’est vraiment très simple, il suffit de télécharger la version 1.6.5 de l’IDE de chez Arduino et d’ajouter la librairie Z-Uno.
Les utilisateurs Windows devront ajouter un pilote de prise en charge pour la détection du Z-Uno.
Le Z-Uno n’est pas compatible avec les dernières versions de l’IDE Arduino il faut bien télécharger une version 1.6.5. Vous n’aurez aucun problème à avoir plusieurs versions de l’IDE en parallèle.
Pour télécharger l’IDE en version 1.6.5 rendez-vous sur cette page et choisir la version pour votre environnement.
Une fois installée, lancé l’IDE Arduino.
Il faut ajouter dans les préférences l’url pour la prise en charge de la carte Z-Uno.
Il suffit d’ajouter la ligne :
http://z-uno.z-wave.me/files/z-uno/package_z-wave.me_index.json
Dans la section « Additional Boards Manager URLs »
Aller dans Tools → Board → Boards manager dans le filtre taper z-uno pour trouver la définition « Z-Uno by Z-WAVE>ME ».
Choisir la dernière version puis cliquer sur Install.
On redémarre l’IDE Arduino.
Il ne vous reste plus qu’à choisir votre Z-Uno avec le menu Tools → Board.
Choisir le programmeur « Z-Uno Programmer » avec le menu Tools → Programmer.
Vous devriez voir dans le menu Tools → Port votre Z-Uno avec son port correspondant. Il faut le sélectionner.
Mettre à jour le bootloader de votre Z-Uno. Aller dans Tools → Burn Bootloader.
Ce processus prend quelques minutes et on ne voit pas d’avancée durant la progression dans l’IDE mais différents clignotements sur votre Z-Uno.
Une fois programmé la DEL de service (jaune) devrait clignoter.
Voilà votre Z-Uno est maintenant prêt à l’utilisation.
En programmation on débute un nouveau langage par un « Hello Word », sur Arduino c’est Blink qui nous valide globalement notre environnement.
Charger l’exemple Blink, et téléverser dans votre Z-Uno à l’aide du bouton Upload.
Cette fois on voit les différentes étapes avant d’arriver au message Done uploading et que la LED blanche (User LED) associé à la pin13 clignote.
Premier module Z-Wave
Maintenant on va faire son premier nœud Z-Wave, l’inclure au contrôleur et valider son bon fonctionnement.
Le plus simple comme nous avons à disposition la « User LED » en pin 13 sera de réaliser un nœud simple relais.
Exemple SimpleSwitch
Charger l’exemple SimpleSwitch directement disponible avec le package Z-Uno que nous avons déjà installé. Il est aussi possible de le télécharger depuis le site Z-Uno. Sur le site on retrouve des explications pour chaque exemple ainsi que le matériel requis pour réaliser le nœud.
Voici le programme
Une macro permet de présenter son module au contrôleur, ici « un » définit un « Channel » qui sera constitué d’un « Switch Binary » de son « getter » (l’état) et un « setter » (la modification de l’état)
Le setup(), lui, permet d’initialiser les entrées sorties des pins, ici on active la pin de la LED en sortie.
Dans la boucle principale on n’a rien à ajouter pour cet exemple, c’est entièrement délégué à la librairie Z-Uno.
Maintenant l’implémentation du setter qui va permettre de modifier l’état de la sortie de notre pin branchée sur la « LED User ».
Nous avons l’habitude avec jeedom pour un Switch Binary d’envoyer 255 ou 0 pour allumer et éteindre, c’est la même chose ici. Si la valeur est > 0 on allume en passant la pin à HIGH sinon on éteint en passant la pin sur LOW. On sauvegarde l’état et c’est tout pour le setter.
Le getter, soit la lecture de l’état est encore plus banale on reprend directement la valeur mémorisée dans l’assignation de la valeur.
L’exemple est très simpliste mais c’est seulement pour se familiariser avec le Z-Uno.
Téléversement
Passons à la programmation son Z-Uno.
Il faut bien sélectionner la bonne fréquence de votre module comme celle de votre réseau, on peut activer la sécurité (inclusion en mode sécurisé) et l’activation ou non de traces de debug.
Téléverser le programme dans le Z-Uno à l’aide du bouton Upload. Le processus est très rapide.
Félicitations, votre nœud est maintenant prêt à être inclus dans un réseau Z-Wave.
Inclusion dans jeedom
Lancer l’inclusion depuis le plugin Z-Wave comme à l’habitude.
Sélectionner le type d’inclusion souhaité (normal ou sécurisé).
On clique 3 fois rapidement sur le bouton de service à côté du connecteur pour batterie.
L’inclusion sera marquée par le clignotement intensif de la LED de service. Une fois inclus on se retrouve avec un équipement Z-Uno.
Dans la Configuration on y retrouve notre définition.
A savoir un Z-Uno de la marque Z-Wave.Me.
Il s’agit d’un esclave pouvant être routé.
La classe de commande générique est un interrupteur binaire avec comme classe spécifique le On/Off Power Switch.
C’est donc exactement ce qu’on a souhaité construire dans notre exemple.
Dans l’onglet Valeurs on retrouve la Classe de commande 0x25 qui est la CC « Switch Binary » avec une seule instance.
On peut rapidement valider le bon fonctionnement en passant la valeur Switch sur On afin d’allumer la « Led User » en pin 13.
L’état de la valeur Switch passera alors à « On » et la date de mise à jour de la valeur sera affichée.
Coté paramètres c’est très simple.
Un paramètre qui permet d’activer le mode debug à la volée sans exclure le module.
Et la désactivation de la Service LED.
A noter qu’il vous sera aussi possible de définir des paramètres, je vais explorer ça et vous proposer une solution au plus simple afin de pouvoir agir sur vos paramètres personnalisés.
Dans l’onglet Associations on retrouve le LifeLine qui est réservé au contrôleur principal et un groupe de contrôle qui sera utile pour les associations directes mais ici qui n’ont pas été implémentées dans l’exemple.
Pour finir l’onglet systèmes nous expose les différentes informations systèmes de nœud réalisées comme entre autre l’Application Version qui correspond à la version du bootloader que nous avons installée au début.
Utiliser dans jeedom
L’onglet mapping est tristement vide. Pourtant j’ai annoncé qu’il était bien reconnu dans jeedom.
C’est vrai mais dans le cas présent il s’agit que de son image, les commandes seront propres à votre définition de module, il ne serait pas possible de toutes les prévoir.
Vous allez devoir créer manuellement vos commandes actions et infos. Le plus simple sera de vous baser sur d’autres modules avec les mêmes fonctionnalités.
On repart d’un autre interrupteur et des copiés collés et voilà son premier module Z-Wave à base de Z-Uno réalisé en quelques minutes.
Il ne vous reste plus qu’à ajouter un relais afin de piloter une vraie lampe ou autre dispositif.
Aller plus loin
Il serait inutile de simplement vous traduire la documentation, je préfère vous diriger sur le site du Z-Uno sur la page de référence qui vous résume autant le C simplifié à la sauce Arduino que l’utilisation de la libraire Z-Wave pour Z-Uno.
De mon côté je vais aussi bien m’amuser avec les différentes possibilités du Z-Uno, j’ai encore pas mal à apprendre mais c’est vraiment très intéressant.
Il faut avancer avec les exemples, lire les possibilités Z-Wave exposé via le Z-Uno et ne pas avoir peur d’y passer du temps.
Voici une liste d’exemples de modules à réaliser:
- CO2 sensor
- I2C BH1750 light sensor
- 1-Wire DS18B20 temperature sensor
- I2C pressure and temperature sensor BMP180 and OLED display
- Analog temperature sensor LM335
- OneWire temperature sensor DS18B20 and I2C LCD display
- Infrared Proximity Sensor Sharp GP2Y0A21YK
- HC-SR04 Ultrasonic Distance Sensor
- Secure keypad controlling a door lock
- RGB LED-strip
- Temperature and humidity sensor DHT11
- 125Khz RFID Card Reader controlling a door lock
- Water Level sensor
- MCP23017 I2C port expander
- 74HC595 SPI shift register
- IR to Z-Wave
- Z-Wave to IR
- Water Meter with EEPROM memory
- Multiple DS18B20 temperature sensors
- Multiple DS18B20 temperature sensors (dynamic style)
- Sharp Memory LCD Display
- RS-485 with MAX485
- RGB LED strip control with WS2811/WS2812 (a.k.a NeoPixel)
- Z-Uno as a modem (AT commands)
Il faudra penser à se procurer une ou plusieurs plaques de prototypage
Il existe aussi beaucoup de kits avec différents capteurs et actionneurs pour Arduino.
Idéal pour réaliser vos premiers capteurs.
Conclusion
Je suis surpris en bien par le Z-Uno, que ce soit dans sa simplicité de programmation ou de son intégration à l’IDE Arduino, je dis chapeau à ZWave.Me pour ce travail.
J’ai des idées de projets pour mon, voir mes, Z-Unos. Je pense à convertir mon nœud mySensors AlarmMonitoring en module Z-Wave.
Une demande qui revient très souvent sur le forum est la réalisation d’un compteur de consommation d’eau. Le Z-Uno serait un excellent candidat, je pense aussi faire un autre petit tuto selon votre engouement pour ce sujet.
A suivre dans d’autres sujets sur le Z-Uno ?
Excellent article 😉 merci
Merci, vas-tu aussi te lancer?
Super, mais je trouve le prix trop cher, une base section peut faire quelque chose de similaire pour quelques euros
Excellent ! Effectivement dommage que ça soit un peut chère pour quelque chose à intégré/programmer !
Pour pour les fan de zwave (dont moi) et des applications spécifique ça peut le faire.
Le compteur d’eau m’intéresse beaucoup
Dans votre présentation vous dites : « Choix de la fréquence Z-Wave. » Etant aux USA j’ai eu les yeux qui ont commencé a briller en me disant « chouette un nouveau jouet… »
Mais j’ai vite déchanté en consultant les sites de ventes de matériels domotique indiqués ainsi que le site officiel : il n’est aucunement fais mention de la fréquence 908.42MHz
Bref votre formulation prête a confusion et du coup je comprends pas ce que vous vouliez dire… mais merci tout de même pour cette présentation, j’ai salivee pour rien, sniff
Alors à la sortie il n’était pas disponible en fréquence 868MHz non plus. Plusieurs zones de fréquences ont été ajoutées. Je pense il devrait arriver aussi en fréquence US très bientôt alors. Ils parle aussi d’une prochaine version Z-Uno Mini.
Il y a bien un choix de fréquences mais tous ne sont pas encore disponible.
J’avais pourtant vue dans la page de référence https://z-uno.z-wave.me/Reference/Frequency/ qu’il était supporté aux USA.
Ah oui en effet sur cette page c’est bien spécifier OK pour les USA, mea culpa les fiches techniques sur les différents sites mériteraient d’être plus claires…
Merci pour cette précision, le temps de finir quelques projets perso et je commande !!! Au passage s’il y a un lien affiliée je l’utiliserais volontiers 😉
Je n’ai malheureusement pas de lien affilié et ou surtout de code rabais sur le Z-Uno, désolé.
Cela m’a l’air bien intéressant et répondrait à deux de mes besoins:
– Compteur d’eau mais il faut voir si elle peut être alimentée par pile car ce dernier est à l’extérieur de la maison et je n’ai pas d’alimentation possible
– Gestion de ma future piscine: niveau d’eau, pH, température
Oui il peut être alimenté sur pile par contre je ne sais pas si ça serait vraiment bien sur pile pour compter le pulse. Mais oui il supporte bien la CC Wakeup donc permet de le mettre en sleep niveau communication zwave
Explications intéressantes; merci beaucoup!
L’exemple « simple switch » passe par un contrôleur. Serait-il possible de commander une prise connectée directement ? (en clair Z-Uno avec un poussoir sur une de ses entrée et une prise télécommande sans rien d’autre ?)
Merci ?
je ne comprends pas bien la question. le z-uno ferait l’entrée poussoir et la sortie prise? si oui pas de problème.
Oui c’est exactement ça! Je suppose qu’il y a un jeu d’instruction pour l’appairage et ensuite ça doit fonctionner…
C’est exactement ça !
Mais, je viens de parcourir le forum https://forum.z-wave.me/viewtopic.php?f=3427&t=25826
mais ça ne semble pas possible ?
oui ici il souhaite inclure un wallplug au z-uno, ce n’est effectivement pas possible. C’est ce que tu souhaites faire ?
Zut, déçu! J’aimerai commander des accessoires Z-Wave directement depuis un Zuno.
Pour résumer le Zuno sert uniquement de « capteur supplémentaire » à une installation comptant déjà un master/box.
Dans mon cas ça fait un peu usine à gaz pour commander quelques prises et accessoires… Re-zut!
Oui c’est ça.
Malheureusement ce n’est donc pas possible 🙁
Le zuno ne peut pas faire master 🙁 , il est donc à réserver QUE comme « capteur externe »
A ma connaissance seul le homematic sait faire cela; juste ?
pas capteur mais slave, toi tu cherche un master. Tu peux préciser de quel HomeMatic tu parles leur catalogue est bien fournie.
En fait je désire commander quelques prises/éclairages et éventuellement lire quelques capteurs.
Le top serait un zuno master, qui soit capable d’envoyer directement des commandes aux slaves. Donc éviter un Rasberry ou une box car ça reviendrait à utiliser un char d’assaut pour peu de chose.
Ce qui s’approche le plus de cela serait le homematic, capable de recevoir des commandes radio ET wifi (dans ce cas via une box). Dans mon cas je servirais la partie radio tout en restant ouvert sur une évolution possible via IP (et box… )
http://www.eq-3.de/produkte/homematic.html
ok dans se sens, mais du coup je pense tu as tout de même meilleur temps de monter un jeedom sur rpi en rapport a investir dans un homematic.
Merci!
je déteste le rpi…
Pour info il y a une mise a jour pour le zuno IDE supporté 1.8.5 ! toujours en slave !!! :-((( 😉
oki lol, c’est niveau firmware zuno donc l’ide arduino n’a pas d’influence.
par contre sans box est-ce que le zuno pourrait lire par exemple la température de « l’oeil » Figaro ?
Non pas possible. C’est vraiment un module de type slave. Sans box il pourrait être commandé en association directe via une télécommande mais pas beaucoup plus. Mais c’est pas pcq c’ést un zuno mais juste pcq il est slave.
Dernière fois, (promis!) que je t’embête avec mes questions…
Est-ce que qu’on peu commander une prise Z-wave via une télécommande Z–wave ? Ca fonctionne où box obligatoire ? Les infos que l’on trouve semble assez contradictoires…
MErci
Tu peux sans problème inclure dans une télécommande zwave comme par exemple les Nodon softremote ou autres des interrupteurs ou variateurs et les commander directement sans avoir besoin d’une box. Les modules inclus a cette remote ne pourront pas être inclus dans un autre réseau zwave, comme un module peut faire partie d’un réseau à la fois.
Super article. Super techno. Dommage que la techno soit chère.
J’ai pleins d’idées, mais n’ayant pas le besoin :
– d’alimenter le module sur pile
– de faire des associations directes
=> Je penche pour un node MCU qui me permettra un protocole de communication tout aussi robuste (TCP/IP), sous réserve d’une bonne couverture wifi (prérequis indispensable) pour piloter des sorties GPIO en entrée sorties et faire un équipement DIY. J’ai déjà repérer le plugin Jeedouino sur le market Jeedom permettant de piloter :
– des nodes mcu
– des arduinos (la pour le coup on retrouve toute la puissance et les possibilités du Z-Uno pour le prix d’un Arduino)
– un raspberry si besoin dun matériel encore plus performant
Un avis Nechry sur cette solution technique en comparaison du Z-Uno ?
Merci bcp Nechry pour ce super article!
J’ai voulu utiliser Z-uno pour controler à distance un servomoteur mais je n’y parviens pas (j’utilise bien zuno_servo.h) mais j’ai l’impression que la logique de Z-Uno est différente d’un Arduino classique dans le sens où Z-Uno va juste setter ou getter un jeu de variable. Je ne peux pas par exemple à un appel Zwave (= au set d’une variable) faire tourner un moteur x secondes et l’arrêter, le void loop() semble être fait constamment pour écouter un set ou get Zwave rendant inopérant toute autre action.
Je me trompe :/ ?
Merci!