[Tuto #1] Plugin Z-Wave - modules AEOTEC et FIBARO Z-Wave+ Sécurisé
Publié : 07 janv. 2018, 23:48
Bonjour à tous, c'est akenad ,
Aujourd'hui je vais vous présenter un retour d'expérience sur la mise en œuvre du plugin Z-Wave (version du 2017-12-08) sur une JeedomSmart 3.1.7 avec quelques modules AEOTEC et FIBARO Z-Wave+.
Dans la JeedomSmart de référence JEEDOM_SMARTZ le controleur Z-Wave+ (du fabricant Sigma Designs) est pré-intégré et le plugin Z-Wave est pré-installé.
J'ai procédé en 3 étapes :
-inclusion en mode sécurisé des modules Z-Wave+
-inventaire des modules sécurisés et non sécurisés, et notion de réveil (Wake-up)
-inventaire des équipements et leurs commandes, et des groupes d'associations du contrôleur
1) Inclusion en mode sécurisé des modules Z-Wave+
Voici la liste des modules Z-Wave+ que j'ai pour l'instant inclus :
Pour le fabricant AEOTEC, les modèles suivants :
-ZW098 LED Bulb Gen5 (v1.06) Ampoule couleur
-ZW080 Siren Gen5 (v3.26) Sirène
-ZW088 Key Fob Gen5 (v1.03) télécommande
Pour le fabricant FIBARO, les modèles suivants :
-FGMS-001 ZW5 Motion Sensor (v3.2) Mouvement
-FGFS-101 ZW5 Flood Sensor (v3.2) Inondation
-FGDW-002 ZW5 Door/Window Sensor 2 (v3.2) Ouverture Porte
-FGSD-002 ZW5 Smoke Sensor (v3.3) Fumée
-FGCD-001 ZW5 CO Sensor (v3.2) Gaz Monoxyde de Carbone
Toutes les inclusions de ces modules Z-Wave+ (donc Gen5 et ZW5) ont été réalisées en sélectionnant le mode sécurisé.
La méthode d'inclusion des modules dans le réseau Z-Wave dépend du module et est décrit dans sa documentation.
La documentation des modules FIBARO est disponible ici :
https://manuals.fibaro.com
La documentation des modules Aeotec est disponible ici :
https://aeotec.freshdesk.com/support/home
et la documentation officielle Jeedom de quelques modules ici :
-Key Fob
-Motion Sensor
-Flood Sensor
-Smoke Sensor
L'inclusion consiste en général à appuyer une ou plusieurs fois sur un bouton sur le module (il peut prendre différents noms comme Learn, TMP, action, B, etc ...)
-Pour l'ampoule l'inclusion (ou l'exclusion) consiste à l'éteindre/allumer 3 fois en moins de 2 secondes.
-Pour la télécommande l'inclusion consiste à appuyer une fois sur le bouton Learn (et le réveil en restant appuyé 3 secondes). L'exclusion via reset en appuyant 20 secondes sur le bouton mode.
-Pour la sirène l'inclusion (ou l'exclusion) consiste à appuyer une fois sur le bouton action.
-Pour les modules FIBARO l'inclusion (ou l'exclusion ou le réveil) se fait en appuyant rapidement 3 fois sur le bouton.
Avec un peu de recul je conseillerais d'inclure d'abord les modules sur secteur (ici ampoule et sirène) puis les modules sur batterie (télécommande et les sensor) afin d'obtenir un maillage réseau optimum.
L'inclusion en mode sécurisé des 2 motion sensor et du door sensor ont été délicate. Je m'y suis repris à plusieurs fois.
Pour optimiser le maillage réseau il fallait, qu'au moment de l'inclusion, le sensor soit plus prêt du contrôleur que de l'ampoule et la sirène mais pas trop près non plus. Parmi tous les modules que j'ai inclus, ces modules sont justement les modules qui disposent d'une configuration recommandée, je ne sais pas si c'est une coïncidence.
Si Jeedom réalisait l'inclusion d'un module mais qu'il n'a en fait pas reconnu le modèle et donc que l’icône de l'équipement n'est pas correct, j'ai recommencé. C'est à dire que j'ai réalisé une exclusion puis à nouveau une inclusion en changeant de distance par rapport au contrôleur jusqu'à ce que ça passe.
En effet si au lieu de recommencer on essaye de rattraper le coup à la main on s’aperçoit au final que bien que l'inclusion ait été demandée en mode sécurisé elle n'est en réalité la plupart du temps pas réalisée en mode sécurisé.
2) Inventaire des modules sécurisés et non sécurisés, et notion de réveil (Wake-up)
Après avoir inclu tous les modules j'ai redémarré le démon openzwave du plugin Z-Wave.
Le redémarrage a eu pour effet de faire apparaître dans la page « Santé » des icônes cadenas vert sur tous les modules (sauf la télecommande).
Ce cadenas est une représentation de la valeur de « Secured » (Classe de la commande 152 (0x98) ) dans l'onglet « Systèmes » de la configuration du module (COMMAND_CLASS_SECURITY dans l'arbre Z-Wave).
Secured inexistant => pas de cadenas (cas de la télécommande)
Secured Oui (true)=> cadenas fermé
Secured Non (false) => cadenas ouvert
Pour l'instant la plupart des cadenas sont ouverts.
En allant dans configuration d'un module → Onglet Actions → cliquer Bouton « Rafraîchir infos du noeud », le cadenas se ferme (après un réveil forcé pour les modules sur batterie) mais seulement si l'inclusion demandé préalablement en mode sécurisé à été effectivement réalisé correctement.
la télécommande est compatible Z-WAVE+ mais ne supporte pas AES Security et COMMAND_CLASS_SECURITY (probablement parce qu'elle est plus ancienne que les autres modules) :
key-fob-gen5-technical-specifications
contrairement à l'ampoule par exemple :
led-bulb-technical-specifications
ce qui explique que bien que la télécommande ait été incluse en demandant le mode sécurisée,
elle n'a pas de cadenas et ne pourra pas communiquer de manière sécurisée avec le contrôleur.
Le comportement des modules diffèrent suivants qu'ils sont alimentés par secteur ou batterie, en particulier sur leur capacité de routage et des intervalles de mesures et de rapports.
Les modules alimentés par batterie possèdent la notion d'état réveillé ou endormi, configurable par le « Wake-up Interval » dans l'onglet « Systèmes » de la configuration du module, de l'ordre de quelques heures par défaut.
Du bon réglage des différents intervalles, la durée de vie de la batterie dépendra.
La modification au niveau de Jeedom de la configuration d'un module sur batterie n'est prise en compte qu'au moment ou il se réveille. Le réveil d'un module peut être forcé après une modification de sa configuration au niveau de Jeedom pour être prise en compte immédiatement au niveau du module.
En résumé après inclusion des modules en mode sécurisé, redémarrage du démon openzwave, et pour chaque module, rafraîchissement de l'info de nœud (puis réveil forcé pour tous les modules sur batterie),
la page « Santé » ressemble à ceci : Et le maillage réseau ressemble à ceci : Quelques remarques :
-tous les modules communiquent directement avec le contrôleur
-chaque module sur batterie (sauf la télécommande ID49) communique directement avec l'ampoule (ID51) et la sirène (ID37)
Il y a par exemple :
- une communication directe possible entre le capteur Mouvement2 (ID64) et l'ampoule (ID51)
- une communication indirecte possible via le contrôleur entre la télécommande (ID49) et l'ampoule (ID51)
(l'ampoule peut être allumée/éteinte avec la télécommande avec un scénario)
3) Inventaire des équipements et leurs commandes, et des groupes d'associations
Voici la liste des équipements et de leurs commandes disponibles par défaut:
LED Bulb : Couleur, Blanc Froid, Blanc Chaud, On, Off, Intensité, Etat, Etat couleur
Key Fob : Scene, Batterie
Siren : Etat, On, Off, Sound (1 à 5) Low - Mid - High
Motion Sensor : Présence, Température, Luminosité, Anti Sabotage, Batterie
Smoke Sensor : Fumées, Chaleur, Sabotage, Température, Alerte Test, Batterie
CO Sensor : CO, Chaleur, Sabotage, Température, Batterie
Flood Sensor : Fuite, Température, Sabotage, Batterie
Door Sensor : Etat, Température, Sabotage, Batterie
Voici les groupes d'associations ou le contrôleur est utilisé,
(Configuration du controleur Z-Wave → Onglet Associations → bouton « Associé à quels modules ») : Tous les modules sont au moins dans le groupe 1 appelé Lifeline (pour les retours d'état), assigné lors de l'inclusion.
ATTENTION ! :Tous les modules FIBARO qui ont été inclus (tous en mode sécurisé) possèdent un paramètre appelé « Associations in Z-Wave network security mode ». Ce paramètre défini si les commandes que le module envoie dans les groupes d'association spécifiés le sont comme sécurisé ou non sécurisé. Ce paramètre n'est actif qu'en mode sécurisé. Cela ne s'applique pas au groupe 1 Lifeline.
Pour le smoke sensor j'ai modifié la valeur du paramètre « Associations in Z-Wave network security mode » de 0 à 15 pour sécuriser tous ses groupes d'associations. (Les autres sensor avaient déjà une valeur qui sécurise tous ses groupes d'associations.)
J'ai pu configurer une association directe entre le capteur Mouvement2 et l'ampoule pour l'allumer sur détection de présence. (Une association directe entre 2 modules ne peut fonctionner que s'il existe une route entre les 2 modules qui ne passe pas par le contrôleur.)
A noter que cela fonctionne aussi parce que le capteur Mouvement2 et l'ampoule sont tous deux sécurisés.
Si l'ampoule est incluse en mode non sécurisé (alors que le capteur Mouvement2 est sécurisé), l'association se configure mais ne fonctionne pas. Pour que cela fonctionne dans ce cas de figure il faut modifier la valeur du paramètre « Associations in Z-Wave network security mode » du capteur Mouvement2 afin que les commandes envoyées par le capteur dans cette association soient non sécurisés.
Pour plus d'informations sur les groupes d'associations, un article intéressant ici :
https://nechry-automation.ch/2017/02/05 ... sociations
A ce stade ce que j'ai compris c'est que pour être sûr qu'un module puisse fonctionner de manière sécurisé il doit avoir un cadenas fermé sur la page santé. La communication avec le contrôleur sera alors sécurisée (chiffrée) et la communication entre modules (sans passer par le contrôleur) via une association directe sera sécurisée ou non sécurisée en fonction d'un paramètre à configurer (en tout cas pour les sensor FIBARO testés).
Voila j'espère que ce retour d’expérience sera utile aux membres Jeedom.
akenad
Aujourd'hui je vais vous présenter un retour d'expérience sur la mise en œuvre du plugin Z-Wave (version du 2017-12-08) sur une JeedomSmart 3.1.7 avec quelques modules AEOTEC et FIBARO Z-Wave+.
Dans la JeedomSmart de référence JEEDOM_SMARTZ le controleur Z-Wave+ (du fabricant Sigma Designs) est pré-intégré et le plugin Z-Wave est pré-installé.
J'ai procédé en 3 étapes :
-inclusion en mode sécurisé des modules Z-Wave+
-inventaire des modules sécurisés et non sécurisés, et notion de réveil (Wake-up)
-inventaire des équipements et leurs commandes, et des groupes d'associations du contrôleur
1) Inclusion en mode sécurisé des modules Z-Wave+
Voici la liste des modules Z-Wave+ que j'ai pour l'instant inclus :
Pour le fabricant AEOTEC, les modèles suivants :
-ZW098 LED Bulb Gen5 (v1.06) Ampoule couleur
-ZW080 Siren Gen5 (v3.26) Sirène
-ZW088 Key Fob Gen5 (v1.03) télécommande
Pour le fabricant FIBARO, les modèles suivants :
-FGMS-001 ZW5 Motion Sensor (v3.2) Mouvement
-FGFS-101 ZW5 Flood Sensor (v3.2) Inondation
-FGDW-002 ZW5 Door/Window Sensor 2 (v3.2) Ouverture Porte
-FGSD-002 ZW5 Smoke Sensor (v3.3) Fumée
-FGCD-001 ZW5 CO Sensor (v3.2) Gaz Monoxyde de Carbone
Toutes les inclusions de ces modules Z-Wave+ (donc Gen5 et ZW5) ont été réalisées en sélectionnant le mode sécurisé.
La méthode d'inclusion des modules dans le réseau Z-Wave dépend du module et est décrit dans sa documentation.
La documentation des modules FIBARO est disponible ici :
https://manuals.fibaro.com
La documentation des modules Aeotec est disponible ici :
https://aeotec.freshdesk.com/support/home
et la documentation officielle Jeedom de quelques modules ici :
-Key Fob
-Motion Sensor
-Flood Sensor
-Smoke Sensor
L'inclusion consiste en général à appuyer une ou plusieurs fois sur un bouton sur le module (il peut prendre différents noms comme Learn, TMP, action, B, etc ...)
-Pour l'ampoule l'inclusion (ou l'exclusion) consiste à l'éteindre/allumer 3 fois en moins de 2 secondes.
-Pour la télécommande l'inclusion consiste à appuyer une fois sur le bouton Learn (et le réveil en restant appuyé 3 secondes). L'exclusion via reset en appuyant 20 secondes sur le bouton mode.
-Pour la sirène l'inclusion (ou l'exclusion) consiste à appuyer une fois sur le bouton action.
-Pour les modules FIBARO l'inclusion (ou l'exclusion ou le réveil) se fait en appuyant rapidement 3 fois sur le bouton.
Avec un peu de recul je conseillerais d'inclure d'abord les modules sur secteur (ici ampoule et sirène) puis les modules sur batterie (télécommande et les sensor) afin d'obtenir un maillage réseau optimum.
L'inclusion en mode sécurisé des 2 motion sensor et du door sensor ont été délicate. Je m'y suis repris à plusieurs fois.
Pour optimiser le maillage réseau il fallait, qu'au moment de l'inclusion, le sensor soit plus prêt du contrôleur que de l'ampoule et la sirène mais pas trop près non plus. Parmi tous les modules que j'ai inclus, ces modules sont justement les modules qui disposent d'une configuration recommandée, je ne sais pas si c'est une coïncidence.
Si Jeedom réalisait l'inclusion d'un module mais qu'il n'a en fait pas reconnu le modèle et donc que l’icône de l'équipement n'est pas correct, j'ai recommencé. C'est à dire que j'ai réalisé une exclusion puis à nouveau une inclusion en changeant de distance par rapport au contrôleur jusqu'à ce que ça passe.
En effet si au lieu de recommencer on essaye de rattraper le coup à la main on s’aperçoit au final que bien que l'inclusion ait été demandée en mode sécurisé elle n'est en réalité la plupart du temps pas réalisée en mode sécurisé.
2) Inventaire des modules sécurisés et non sécurisés, et notion de réveil (Wake-up)
Après avoir inclu tous les modules j'ai redémarré le démon openzwave du plugin Z-Wave.
Le redémarrage a eu pour effet de faire apparaître dans la page « Santé » des icônes cadenas vert sur tous les modules (sauf la télecommande).
Ce cadenas est une représentation de la valeur de « Secured » (Classe de la commande 152 (0x98) ) dans l'onglet « Systèmes » de la configuration du module (COMMAND_CLASS_SECURITY dans l'arbre Z-Wave).
Secured inexistant => pas de cadenas (cas de la télécommande)
Secured Oui (true)=> cadenas fermé
Secured Non (false) => cadenas ouvert
Pour l'instant la plupart des cadenas sont ouverts.
En allant dans configuration d'un module → Onglet Actions → cliquer Bouton « Rafraîchir infos du noeud », le cadenas se ferme (après un réveil forcé pour les modules sur batterie) mais seulement si l'inclusion demandé préalablement en mode sécurisé à été effectivement réalisé correctement.
la télécommande est compatible Z-WAVE+ mais ne supporte pas AES Security et COMMAND_CLASS_SECURITY (probablement parce qu'elle est plus ancienne que les autres modules) :
key-fob-gen5-technical-specifications
contrairement à l'ampoule par exemple :
led-bulb-technical-specifications
ce qui explique que bien que la télécommande ait été incluse en demandant le mode sécurisée,
elle n'a pas de cadenas et ne pourra pas communiquer de manière sécurisée avec le contrôleur.
Le comportement des modules diffèrent suivants qu'ils sont alimentés par secteur ou batterie, en particulier sur leur capacité de routage et des intervalles de mesures et de rapports.
Les modules alimentés par batterie possèdent la notion d'état réveillé ou endormi, configurable par le « Wake-up Interval » dans l'onglet « Systèmes » de la configuration du module, de l'ordre de quelques heures par défaut.
Du bon réglage des différents intervalles, la durée de vie de la batterie dépendra.
La modification au niveau de Jeedom de la configuration d'un module sur batterie n'est prise en compte qu'au moment ou il se réveille. Le réveil d'un module peut être forcé après une modification de sa configuration au niveau de Jeedom pour être prise en compte immédiatement au niveau du module.
En résumé après inclusion des modules en mode sécurisé, redémarrage du démon openzwave, et pour chaque module, rafraîchissement de l'info de nœud (puis réveil forcé pour tous les modules sur batterie),
la page « Santé » ressemble à ceci : Et le maillage réseau ressemble à ceci : Quelques remarques :
-tous les modules communiquent directement avec le contrôleur
-chaque module sur batterie (sauf la télécommande ID49) communique directement avec l'ampoule (ID51) et la sirène (ID37)
Il y a par exemple :
- une communication directe possible entre le capteur Mouvement2 (ID64) et l'ampoule (ID51)
- une communication indirecte possible via le contrôleur entre la télécommande (ID49) et l'ampoule (ID51)
(l'ampoule peut être allumée/éteinte avec la télécommande avec un scénario)
3) Inventaire des équipements et leurs commandes, et des groupes d'associations
Voici la liste des équipements et de leurs commandes disponibles par défaut:
LED Bulb : Couleur, Blanc Froid, Blanc Chaud, On, Off, Intensité, Etat, Etat couleur
Key Fob : Scene, Batterie
Siren : Etat, On, Off, Sound (1 à 5) Low - Mid - High
Motion Sensor : Présence, Température, Luminosité, Anti Sabotage, Batterie
Smoke Sensor : Fumées, Chaleur, Sabotage, Température, Alerte Test, Batterie
CO Sensor : CO, Chaleur, Sabotage, Température, Batterie
Flood Sensor : Fuite, Température, Sabotage, Batterie
Door Sensor : Etat, Température, Sabotage, Batterie
Voici les groupes d'associations ou le contrôleur est utilisé,
(Configuration du controleur Z-Wave → Onglet Associations → bouton « Associé à quels modules ») : Tous les modules sont au moins dans le groupe 1 appelé Lifeline (pour les retours d'état), assigné lors de l'inclusion.
ATTENTION ! :Tous les modules FIBARO qui ont été inclus (tous en mode sécurisé) possèdent un paramètre appelé « Associations in Z-Wave network security mode ». Ce paramètre défini si les commandes que le module envoie dans les groupes d'association spécifiés le sont comme sécurisé ou non sécurisé. Ce paramètre n'est actif qu'en mode sécurisé. Cela ne s'applique pas au groupe 1 Lifeline.
Pour le smoke sensor j'ai modifié la valeur du paramètre « Associations in Z-Wave network security mode » de 0 à 15 pour sécuriser tous ses groupes d'associations. (Les autres sensor avaient déjà une valeur qui sécurise tous ses groupes d'associations.)
J'ai pu configurer une association directe entre le capteur Mouvement2 et l'ampoule pour l'allumer sur détection de présence. (Une association directe entre 2 modules ne peut fonctionner que s'il existe une route entre les 2 modules qui ne passe pas par le contrôleur.)
A noter que cela fonctionne aussi parce que le capteur Mouvement2 et l'ampoule sont tous deux sécurisés.
Si l'ampoule est incluse en mode non sécurisé (alors que le capteur Mouvement2 est sécurisé), l'association se configure mais ne fonctionne pas. Pour que cela fonctionne dans ce cas de figure il faut modifier la valeur du paramètre « Associations in Z-Wave network security mode » du capteur Mouvement2 afin que les commandes envoyées par le capteur dans cette association soient non sécurisés.
Pour plus d'informations sur les groupes d'associations, un article intéressant ici :
https://nechry-automation.ch/2017/02/05 ... sociations
A ce stade ce que j'ai compris c'est que pour être sûr qu'un module puisse fonctionner de manière sécurisé il doit avoir un cadenas fermé sur la page santé. La communication avec le contrôleur sera alors sécurisée (chiffrée) et la communication entre modules (sans passer par le contrôleur) via une association directe sera sécurisée ou non sécurisée en fonction d'un paramètre à configurer (en tout cas pour les sensor FIBARO testés).
Voila j'espère que ce retour d’expérience sera utile aux membres Jeedom.
akenad