Capteur / thermostat Aqara W100 Capteur de température et humidité Zigbee Matter Thread

J’ai testé avec

sudo docker run \
   --name gladys-z2m-zigbee2mqtt \
   --restart=unless-stopped \
   --network=host \
   --device=/dev/serial/by-id/usb-1a86_TubesZB_971207DO-if00-port0 \
   -v /var/lib/gladysassistant/zigbee2mqtt/z2m:/app/data \
   -v /run/udev:/run/udev:ro \
   -e TZ=Europe/Paris \
   ghcr.io/koenkk/zigbee2mqtt:2.3.0

Toujours l’erreur de connexion.

J’ai ajouté

--cgroupns=host \

Pareille

--group-add dialout \

Pareille

--privileged \

Pareille

--user 1001:1001 \
--group-add dialout \

Error: EACCES: permission denied, mkdir ‹ /app/data/log/2025-05-19.22-57-37 ›
at Object.mkdirSync (node:fs:1364:26)
at Logger.init (/app/lib/util/logger.ts:75:16)
at new Controller (/app/lib/controller.ts:46:16)
at start (/app/index.js:147:18)

Donc toujours pas de connexion à mqtt

Je viens d’aller voir se que j’ai mis pour node-red.
il y a

--privileged \
-u root \
--network=host \

Il faudra que j’essaye, comme ce n’est pas Gladys qui fait l’installation de zigbee2mqtt, il y a peut-être incompatibilité de droit sur les fichiers.

Bon cela n’a pas fonctionné.
J’ai mis des guillemet autour du mot de passe et de user comme mentionné ici
MQTT failed to connect: Connection refused: Not authorized · Issue #11148 · Koenkk/zigbee2mqtt · GitHub

Dans Intégration > Configuration > MQTT

Le mot de passe ne correspond pas à celui enregistré dans mon fichier configuration.yaml de zigbee2mqtt, est ce que c’est normal ?
J’ai essayé de le changé mais toujours pas de connexion.
Je me demande également si j’ai mis le bon port

Je remarque également que dans mes essai si je remet

sudo docker run \
   --name gladys-z2m-zigbee2mqtt \
   --restart=unless-stopped \
   --device=/dev/serial/by-id/usb-1a86_TubesZB_971207DO-if00-port0 \
   -p 8080:8080 \
   -v /var/lib/gladysassistant/zigbee2mqtt/z2m:/app/data \
   -v /run/udev:/run/udev:ro \
   -e TZ=Europe/Paris \
   ghcr.io/koenkk/zigbee2mqtt:2.3.0

J’ai eu

error: 	z2m: MQTT failed to connect, exiting... ()

Et Non

error: 	z2m: MQTT failed to connect, exiting... (Connection refused: Not authorized)

Oui c’est normal, Gladys lance 2 containers Mosquitto distinct, un pour l’intégration MQTT, et l’autre pour l’intégration Zigbee2mqtt, ce n’est pas le même broker.

Celui de l’intégration Zigbee2mqtt est disponible sur le port 1884.

Si tu ne mets pas le network=host, ça ne peut physiquement pas marcher :slight_smile: Gladys doit pouvoir avoir accès au container mosquitto.

@pierre-gilles
Quand on « Activer ou désactiver le service » de « Configuration du service Zigbee2mqtt »
Est-ce que cela change le mot de passe, parce que je constate que ce n’est pas le même que j’ai en production par rapport à celui que j’ai en sauvegarde. Bref j’ai certainement fait tous mes tests avec un mauvais mot de passe.

Cette fois avec le bon mot de passe cela à marché la 2 ème fois, la 1ère j’ai eu droit au problème des 600 ms.

les prises NOUS et un smart switch D2Z NOUS également demandent une mise à jour, j’ai vue que tu ne l’avais pas encore fait et que cela fonctionne donc j’attends, je testerai avec une prise non crucial.

1 « J'aime »

Génial tant mieux si ça a marché :slight_smile: Du coup le Thermostat Aqara est bien géré ?

Pour les prises NOUS, c’est le Child Lock qui disparaît de Gladys comme je l’ai mis ici.
De mon côté je n’ai pas fait la mise à jour car le Child Lock ne sera plus accessible que par l’interface de z2m.

Un peu de lecture sur le test de l’Aqara W100.

Oui




Par contre le bouton autoriser l’association n’a pas voulu fonctionner;
Si j’activais sur gladys cela marquait disable sur zigbee2mqtt.

je n’ai pas essayé de configurer le thermostat, pour l’instant j’ai un problème avec une électrovanne
https://www.domadoo.fr/fr/destockage/7212-saswell-electrovanne-et-programmateur-d-arrosage-connecte-zigbee.html
Qui n’était pas reconnu et j’avais trouvé une extension externe pour la faire fonctionner.
Mais là en 2.3.0 mon fichier est vide avec une extension .invalide au bout.
Je n’ai pas trouvé de fichier modifié pour la 2.3.0
Cette vanne inonde ma chaudière à granulé si la température dépasse un certain seuil.
je vais certainement devoir la changer, si vous en connaissez qui fonctionne bien, réactif, pas de déconnexion intempestive, je suis preneur.

Ok merci du retour, il y a sûrement des adaptations à faire côté Gladys avec cette nouvelle version de Zigbee2mqtt :slight_smile:

En attendant utilise le bouton d’appairage dans Zigbee2mqtt !

Bon j’ai commandé celle là:
https://www.domadoo.fr/fr/peripheriques/5685-woox-controleur-d-arrosage-intelligent-onoff-zigbee-30-8435606701198.html?domid=17

Par contre @pierre-gilles si tu pouvais ajouter sur Gladys à gauche de notre nom et photo par exemple un bouton « Boutique » avec les lien partenaire qui renvoie vers amazon, domadoo ton mini Pc gladys+ .
Car il a encore fallu que j’aille fouillé dans le forum pour savoir quel code à ajouter au lien domadoo là cela serait direct.

1 « J'aime »

@pierre-gilles j’ai un gros souci.
J’ai fais sauté les plombs donc plus de courant pour Gladys.
Au redémarrage Gladys ma réinstallé la version 1.42.0
et zigbee2mqtt en carafe puisque le ficher configuration.yaml est pour la 2.3.0

argh pas cool :frowning:
Pour évitez tous ces désagréments, je passe par docker compose et portainer.
Docker compose, me permet de mettre ce que je veux et figer les versions, et portainer me permet de gérer tout ça avec une interface graphique sympa (avec accès aux logs, stats cpu/ram/disk, etc.).
Tu crées une fois le rep pour portainer :

docker volume create portainer_data

Et le docker run que tu lances est :

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

ensuite tu peux te connecter sur http://monipdemachine:9000
J’ai créé une Stack nommée gladys-assistant ou j’ai mis dedans le docker compose :

version: "3"

services:
  gladys:
    image: gladysassistant/gladys:v4
    container_name: gladys
    restart: always
    privileged: true
    network_mode: host
    cgroup: host
    logging:
      driver: "json-file"
      options:
        max-size: 10m
    environment:
      NODE_ENV: production
      SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
      SERVER_PORT: 80
      TZ: Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/gladysassistant:/var/lib/gladysassistant
      - /dev:/dev
      - /run/udev:/run/udev:ro

  watchtower:
    image: containrrr/watchtower
    restart: always
    container_name: watchtower
    command: --cleanup --include-restarting
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

et à cela tu peux ajouter ton Matterbridge, ton z2m dédié, ton broker MQTT, ton zwavejs-ui, node-red, etc. si bien entendu tu veux le gérer à la place de Gladys.

  matterbridge:
    container_name: matterbridge
    image: luligu/matterbridge:latest # Matterbridge image with the latest tag
    network_mode: host # Ensures the Matter mdns works
    restart: always # Ensures the container always restarts automatically
    volumes:
      - "${HOME}/Matterbridge:/root/Matterbridge" # Mounts the Matterbridge plugin directory
      - "${HOME}/.matterbridge:/root/.matterbridge" # Mounts the Matterbridge storage directory

  zigbee2mqtt:
    image: koenkk/zigbee2mqtt:2.2.1
#    image: koenkk/zigbee2mqtt:1.42.0
    container_name: zigbee2mqtt
    restart: unless-stopped
    environment:
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - NODE_ENV=production
      - TZ=Europe/Berlin
    volumes:
      - ./data:/app/data:rw
      - /run/udev:/run/udev:ro
    ports:
      - 12000:12000
    network_mode: host
    devices:
        # Make sure this matched your adapter location
        - /dev/serial/by-id/usb-Txxxxxxxyyyyyyyy:/dev/ttyACM0
# run a rootless container with Docker Compose by adding the following attributes
    # group_add:
    #     - dialout
    # user: 1000:1000

Ce sont des exemples que l’on doit mettre ajuster à sa config et notamment dans la création ces répertoires.

En tout cas c’est ce que je fais et ça fonctionne plutôt bien chez moi, je peux « jouer » avec les différentes versions, toujours en backupant avant !
Avec cette méthode je peux aussi me créer un gladys de test, par exemple :

version: '3'

services:
  gladys:
#    image: cicoub13/gladys:tuya-rain
    image: gladysassistant/gladys:matter-integration
#    image: sescandell/gladys-test:zjs-battery
#    image: sescandell/gladys-test:pr-zwaveJsMeter
#    image: gladysassistant/gladys:zigbee2mqtt-tuya-me201wz
#    image: gladysassistant/gladys:dashboad-add-other-aggregate-functions
    container_name: gladys-test
    restart: always
    privileged: true
    network_mode: host
    logging:
      driver: "json-file"
      options:
        max-size: 10m
    environment:
      NODE_ENV: production
      SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
      SERVER_PORT: 8001
      TZ: Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./gladysassistant-test:/var/lib/gladysassistant
      - /dev:/dev
      - /run/udev:/run/udev:ro

  mosquitto:
    image: eclipse-mosquitto:2.0.20
    container_name: gladys-test-mqtt
    restart: unless-stopped
#    command: mosquitto -c /mosquitto-no-auth.conf
    environment:
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - VERSION=2.0.20
      - DOWNLOAD_SHA256=azszderzbenrac6
      - GPG_KEYS=azszderzbenr
      - LWS_VERSION=4.2.1
      - LWS_SHA256=azszderzbenr
    volumes:
      - ./mqtt-test/config:/mosquitto/config:rw
      - ./mqtt-test/data:/mosquitto/data:rw
      - ./mqtt-test/log:/mosquitto/log:rw
    ports:
      - 1888:1888
    network_mode: host

  matterbridge:
    image: luligu/matterbridge:latest
    container_name: gladys-test-matterbridge
    restart: always
    network_mode: host
    volumes:
      - ./matterbridge-test/Matterbridge:/root/Matterbridge
      - ./matterbridge-test/.matterbridge:/root/.matterbridge

Pour ton cas, je pense que ce serait bien de gérer z2m par là.
Il faut cependant que tu désactives la gestion de z2m par Gladys, ensuite tu fais ton portainer, tu démarres une stack (avec z2m avec 2.3.0 pour la version par ex) et tu lances. Tu retournes ensuite dans Gladys et tu ajoutes ton docker externe z2m :


En espérant que tu retrouves tous tes petits.

J’ai tellement fais de réinstallation qu’il me faut 5 minutes pour en faire une nouvelle,
J’ai toutes les commandes dans un fichier.

et moi 5s :joy:

Il faut que j’installe le docker ailleurs que dans /var/lib/gladysassistant/zigbee2mqtt/z2m
Car cela n’a pas fonctionné
j’ai
error: z2m: MQTT failed to connect, exiting... (connect ECONNREFUSED 127.0.0.1:1884)

@mutmut je ne sais pas pourquoi j’avais vu que la fin de ton message.
Donc comme cela n’avait pas fonctionné je remis en installation depuis Gladys
Il a fallut que je renseigne à nouveau ou était branché mon coordinateur et le modèle par contre le port a été automatiquement changé en 12000
J’ai récupérer un gladys fonctionnel mais zigbee2mqtt en 12000
en version 1.42.0 j’ai sélectionné connexion à un installation existante renseigné l’adresse ip pour mqtt
arrêté le docker, modifié le fichier configuration.yaml, supprimé docker et réinstallé la 2.3.0 première tentative erreur 600ms je supprime docker relance l’installation et cela fonctionne.
Je débranche mon MiniPC pour simuler une coupure de courant et il redémarre en 2.3.0
Donc c’est OK

1 « J'aime »

Bon je commencé la configuration de mon W100

Le but étant de gérer la gestion du chauffage d’un radiateur électrique (type grille pain) de la salle de bain par les clients.

De haut en bas
J’ai créé un Appareil MQTT fictif thermostat que j’ai nommé:
ref-temperature-sb-chambre-6
La valeur actuelle est de 27° C
En dessous le commutateur NOUS 4-1-20
Qui donne le courant ou pas au radiateur électrique.
Puis l’intensité du signal du commutateur NOUS 4-1-20
Ensuite la température de la pièce enregistrée par le W100 ici 77.2 °F (voir explication ici)
Puis la valeur humidité enregistrée par le W100
Le bouton Clic du milieu du W100
et pour finir l’intensité du signal du W100

J’ai créé une scène Compteur température Ch6
avec pour déclencheur l’appui sur le bouton + du W100
dans les réglages j’ai choisi Bouton Plus pressé

Puis je récupère la valeur de référence de la température souhaité sur mon thermostat fictif.

Je poursuis la procédure si la valeur est inférieure à 35°C

Vérification du bon fonctionnement de la scène;
Je m’envoie par télégramme la valeur récupérée du thermostat et j’attends 1 seconde pour continuer.

J’ajoute +1 à la valeur de mon thermostat

Je récupère la nouvelle valeur de mon thermostat

Vérification du bon fonctionnement de la scène;
Je m’envoie par télégramme la valeur nouvelle valeur récupérée du thermostat.

Je teste, cela ne fonctionne pas.
Je modifie le déclencheur par un bouton clic simple Xiaomi.
Cela fonctionne la valeur de mon thermostat est incrémenté de 1 de 27°C il passe à 28°C
Je voulais faire ensuite une scène qui compare la valeur de référence avec la valeur de la température de la pièce et en fonction active ou pas le commutateur NOUS 4-1-20.
Et essayer de faire afficher la valeur de la température de référence sur le W100 comme est affiché la température de l’eau de la piscine dans le lien partagé par @mutmut

Un peu de lecture sur le test de l’Aqara W100.

Le problème viens sûrement du (Clic bouton) du W100 qui renvoie Aucune valeur enregistrée sur Gladys.
sur zigbee2MQTT nous avons

Appuis bouton Résultat Zgbee2MQTT relâchement bouton Résultat Zgbee2MQTT
Bouton + 1 appui court single_plus
Bouton centre 1 appui court single_center
Bouton - 1 appui court single_minus
Bouton + 2 appuis court double_plus
Bouton centre 2 appuis court double_center
Bouton - 2 appuis court double_minus
Bouton + 1 appui long hold_plus Bouton + relâchement long release_plus
Bouton centre 1 appui long hold_center Bouton centre relâchement long release_center
Bouton - 1 appui long hold_minus Bouton - relâchement long release_minus

D’après moi ça ne fonctionnera pas comme ça directement car on ne peut pas envoyer de calcul à un capteur.
Je te conseille de jeter un oeil sur le tuto de @prohand sur la domotisation du lave-linge.
En fait il te faudra créer 2 fonctionnalités pour ta température de thermostat : 1 pour la récup de la temp (capteur), 1 pour faire les calculs (actionneur).
Dans le tuto, c’est appelé sender (capteur) et listener (actionneur).

EDIT : après relecture de ton post, ça semble fonctionner car tu obtiens 28 après le +1.
Si tu t’envoies via telegram la valeur de ton bouton, il te renvoie quoi comme chiffre ? (ça ne renverra pas le résultat z2m mais du numérique normalement)
Si il n’y a rien alors il faut faire un nouveau sujet pour ajouter les specs du Aqara W100 dans Gladys.

Voici se que ma scène me renvoie via telegram avec le clic bouton Xiaomi

Et sur le dashboard la valeur de mon thermostat fictif et bien augmenté.

Avec le clic sur le W100 il ne se passe rien aucune notification telegram la scène n’est pas déclenchée.