[NODE-RED] zwave-js-ui et volet roulants ZMNHCD1

Ce petit flow vous permet de contrôler vos volets roulant via Gladys / Node red

Le module que j’utilise est un Qubino ZMNHCD1

Dans le service MQTT de Gladys j’ai un device Volet

Avec une feature « Switch Dimmer » configuré comme ceci

Attention la valeur maxi est 99


Dans node red j’ai créer ce flow qui permet donc de controller la position du volet via Gladys et de mettre à jour l’état s’il y’a eu un contrôle extérieur ( bouton physique ou alexa ).

Le flow importable

[
    {
        "id": "06167c4aeed2d29e",
        "type": "tab",
        "label": "Zwavejs",
        "disabled": false,
        "info": ""
    },
    {
        "id": "58e23de9eeb04e5c",
        "type": "mqtt in",
        "z": "06167c4aeed2d29e",
        "name": "Gladys value",
        "topic": "gladys/device/mqtt:volet/feature/mqtt:position/state",
        "qos": "2",
        "datatype": "auto",
        "broker": "05eac840560ca08c",
        "nl": false,
        "rap": true,
        "rh": 0,
        "x": 90,
        "y": 80,
        "wires": [
            [
                "29bb8e1ef43b1a15"
            ]
        ]
    },
    {
        "id": "ec1b1f35710ca026",
        "type": "mqtt out",
        "z": "06167c4aeed2d29e",
        "name": "Set value on zwavejs2mqtt",
        "topic": "zwave/Volet/38/0/targetValue/set",
        "qos": "2",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "07a4b31138749fb7",
        "x": 960,
        "y": 80,
        "wires": []
    },
    {
        "id": "29bb8e1ef43b1a15",
        "type": "json",
        "z": "06167c4aeed2d29e",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 550,
        "y": 80,
        "wires": [
            [
                "ec1b1f35710ca026"
            ]
        ]
    },
    {
        "id": "fc72847db40a7ee1",
        "type": "mqtt in",
        "z": "06167c4aeed2d29e",
        "name": "zwavejs topic currentValue",
        "topic": "zwave/Volet/38/0/currentValue",
        "qos": "2",
        "datatype": "auto",
        "broker": "07a4b31138749fb7",
        "nl": false,
        "rap": true,
        "rh": 0,
        "x": 130,
        "y": 140,
        "wires": [
            [
                "6af9ebb2dab5d51a"
            ]
        ]
    },
    {
        "id": "50f432e72d05f875",
        "type": "mqtt out",
        "z": "06167c4aeed2d29e",
        "name": "Update Gladys value",
        "topic": "gladys/master/device/mqtt:volet/feature/mqtt:position/state",
        "qos": "2",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "05eac840560ca08c",
        "x": 940,
        "y": 140,
        "wires": []
    },
    {
        "id": "e04fcc594d63b332",
        "type": "function",
        "z": "06167c4aeed2d29e",
        "name": "Get only the value",
        "func": "msg.payload = msg.payload.value\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 710,
        "y": 140,
        "wires": [
            [
                "50f432e72d05f875"
            ]
        ]
    },
    {
        "id": "0829660626defc53",
        "type": "json",
        "z": "06167c4aeed2d29e",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 550,
        "y": 140,
        "wires": [
            [
                "e04fcc594d63b332"
            ]
        ]
    },
    {
        "id": "6af9ebb2dab5d51a",
        "type": "trigger",
        "z": "06167c4aeed2d29e",
        "name": "Wait for stable value",
        "op1": "",
        "op2": "",
        "op1type": "pay",
        "op2type": "payl",
        "duration": "30000",
        "extend": true,
        "overrideDelay": false,
        "units": "ms",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 360,
        "y": 140,
        "wires": [
            [
                "0829660626defc53"
            ]
        ]
    },
    {
        "id": "05eac840560ca08c",
        "type": "mqtt-broker",
        "name": "GladysMQTT",
        "broker": "192.168.1.42",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "sessionExpiry": ""
    },
    {
        "id": "07a4b31138749fb7",
        "type": "mqtt-broker",
        "name": "zwavejs2mqtt",
        "broker": "192.168.1.42",
        "port": "1884",
        "clientid": "",
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "sessionExpiry": ""
    }
]

Le résulat dans le dashboard Gladys
image

Le topic mqtt côté zwave-js-ui correspond au COM CLASS 38

image

6 « J'aime »

:scream: :heart_eyes:

Merci pour le tutoriel @VonOx, ça va aider du monde !

merci @VonOx ! J’avais en tête de domotiser mes volets filaires. çà va peut etre me faire sauter le pas.

question: tu utilises quoi comme clé zwave? tu as acheté ou tes interrupteurs ?
Je demande pour comparer le prix avec la gamme schneider connecté zigbee

Salut

La clé je l’ai prise sur amazon Aeotec Z Stick Gen 5
Le module pour interrupteur chez domotique store

L’interrupteur est un bistable legrand classique, ça permet de garder une possibilité de gérer ses volets si pas de domotique.

Salut @VonOx , merci pour ce tuto.

Du coup tu as installé zwavejs2mqtt?
Tu es passé par un container docker pour l’installer?
Peux- tu me donner plus de détails STP?
Car je viens de brancher mon dongle zwave sur Gladys et j’ai plusieurs type de module qubino à contrôler.

Merci d’avance

Oui rien de particulier, zwavejs2mqtt dans un conteneur.

La conf se fait dans l’interface

1 « J'aime »

Ok merci.:+1:
Et dans Gladys comme tu passes par zwavejs2mqtt tu n’as pas activé l’intégration zwave?

Ah non pas de zwave dans Gladys, MQTT uniquement

2 « J'aime »

Ok parfait je teste ça ce soir. Merci.

1 « J'aime »

En vrais on ne pourrait pas refaire le « service » zwave pour quil lance le container plus un mqtt comme z2m?

La c’est un remplacement de lib, donc y’aura pas de mqtt. Faudra faire une autre intégration à l’image de Zigbee2mqtt

On en avait discuté, et contrairement à Zigbee2mqtt, ZwaveJS2Mqtt apporte peu.

Le choix qui a été fait c’est de migrer vers ZwaveJS (la lib) en gardant l’UI dans Gladys, ça reste plus user-friendly et plus pérenne. On l’a vu avec Zigbee2mqtt, faire tourner un container à côté, ça reste un « risque » et on est beaucoup moins en contrôle côté Gladys.

Une grande partie du travail de migration a déjà été fait par @Romuald_Pochet ici =>

1 « J'aime »

@VonOx , bon ben pas si facile que ca en faite!
Pas de souci pour installer zwavejs2mqtt, ajouter mes devices et même les contrôler via l’interface de zwavejs… sauf que la partie MQTT je n’arrive pas à la faire fonctionner :cry:
J’ai toujours une erreur:

Je pense que j’aurais besoin de ton aide

@VonOx , dans les paramètres MQTT de zwavejs2mqtt tu as mis quoi comme paramètres ?
J’ai essayé plein de chose mais rien ne fonctionne

Met ton ip LAN ( pas 127.0.0.1 )

J’ai déjà essayé mais ca ne marche pas!

Tu as lancer l’intégration MQTT côté Gladys ?

Oui mais du coup c’est peut-être ça le problème.

Dans les paramètres mqtt de zwavejs2mqtt il faut remettre le port mqtt de gladys et indentifiant/password de gladys?

Oui sauf si tu veux un autre broker mqtt

Il dit quoi le log du MQTT ?

J’ai modifié et indiqué l’authentification du broker mqtt gladys dans zwavejs2mqtt.
Le message d’erreur n’est plus là. Dans node red, j’ai l’icône connecté donc ca a l’air de fonctionner.
Quand je rentre chez moi tout à l’heure, je fais un essai en réel.
Merci a toi.

1 « J'aime »