Plugin matter

Matter (plugin Jeedom)

Nom / ID : Matter / matter


:brain: Description

Plugin Jeedom permettant d’intégrer et de piloter des équipements compatibles Matter (lumières, capteurs, énergie, etc.) directement depuis Jeedom.

Il s’appuie sur un démon Python local pour gérer la communication avec les appareils Matter et remonter les états en temps réel dans Jeedom.


:gear: Fonctionnalités principales

  • Découverte automatique des équipements Matter
  • Support de nombreux types d’appareils (lumières, capteurs, énergie, etc.)
  • Création automatique des commandes Jeedom
  • Remontée des états en temps réel

:jigsaw: Caractéristiques techniques

  • Langages utilisés : PHP + Python
  • Démon : Oui
  • Dépendances : Oui
  • Crons : Non

:moneybag: Mode de commercialisation

Gratuit (et le restera)


:books: Documentation

:point_right: Documentation du plugin Matter

:desktop_computer: Compatibilité

  • Jeedom 4.4+
  • Debian 11 / 12 / 13
  • Raspberry Pi / NUC / VM

:star: Points forts

  • Intégration du protocole Matter dans Jeedom
  • Compatible avec les serveurs Matter existants (Home Assistant, Matter Server)
  • Support multi-types d’équipements (lumières, capteurs, énergie…)
  • Création automatique des commandes Jeedom

19 « J'aime »

Après tests du jour:

Le plugin nécessite au minimum Python 3.11.

Debian 12 est recommandé, Debian Trixie est bien supporté (fonctionne chez moi).

Debian 11 peut fonctionner, à condition d’avoir Python 3.11 installé.

Bonjour zyg0m4t1k,

pas très clair à la lecture de la doc sur ce qu’on peut faire exactement avec ce plugin.
J’ai une clé USB ZBT-1 (Nabu Casa Home Assistant) avec firmware OTBR 2.4.4.
Je me disais que le mode serveur Matter embarqué du plugin permettrait d’utiliser directement cette clé sur la Box Jeedom, ce qui n’a pas l’air d’être le cas, contrairement à ce que pourrait faire penser la doc :

Par ailleurs il me semble que HA Matter Server (à partir de 8.2.0) a migré de python vers Javascript, depuis HA 2026.2.

akenad :slight_smile:

Bonjour,

Mips et nebz ont développé et mis à disposition une bibliothèque qui permet d’installer la version de python que l’on veut via pyenv. Ca permet de rendre le plugin compatible avec debian11 même pour les gens qui ne maitrisent pas l’installation (non recommandée) d’une autre version de python.
Je ne m’étalle pas et vous suggère la lecture du dépôt github. Nous sommes plusieurs à utiliser cette bibliothèque et, bien évidemment, elle fonctionne top moumoutte et ne demande pas beaucoup de modifications !

A+
Michel

5 « J'aime »

Je plussoie ! Pour l’avoir utiliser récemment c’est enfantin à mettre en place :slight_smile:
Donc parfait pour moi qui ne suis pas un expert linux !

Bonjour akenad

Comment dire => ambivalence/contradiction/doute de ma part sur ce plugin qui a la base devait être perso . puis j’ai vu la demande donc je l’ai fait évoluer et partagé . Pour la clé c’était je veux/je ne veux pas | je peux/je ne peux pas l’intégrer et aujourd’hui j’essaie de l’implémenter avec ma clé sonoff que j’ai flashé . ca avance . Donc voici le pourquoi de la doc : mon ambivalence …

Oui j’ai vu pour matter js qui est encore en beta et le serveur Python reste stable pour le moment . A voir avec le temps .

Tu l’as testé ?

Merci Michel_F pour l’info. Je ne savais pas, je vais l’intégrer .

3 « J'aime »

Oui, voir ici : Deamon ne démarre pas nouveau plugin matter - #29 par akenad

akenad :slight_smile:

Voila j’ai bien avancé

  • avec l’utilisation du script pour installer la version python minimum pour debian 11

  • L’intégration d’un réseau thread

Le commissioning est ok j’ai pu ajouter une lampe Ikea E14 rgb , un bouton bilresa , une ampoule aqara.

J’ai mis du temps à comprendre que pas possible pour une ikea E27. Et bien sûr j’ai commencé par celle-là donc je me suis tiré les cheveux… Mais via le homepod. c’est bon.

reste la doc à faire et je vais pousser la version sur le market

  • En attente la possiblité de générer un code pour pouvoir gérer le multi-admin et la possiblité d’injecter le dataset de HA par exemple pour ne pas avoir à tout réinstaller .
3 « J'aime »

Nouvelle version disponible

Après plusieurs tests, le plugin n’est compatible uniquement qu’à partir de Debian 12.
Debian 11 n’est pas supporté. Donc vous aurez une erreur si vous essayez de le télécharger.

  • Ajout du support Thread local via OTBR (OpenThread Border Router)
    • Commissionnement
    • Multi-admin (partage d’équipements)

:point_right: Documentation
:point_right: Changelog

à cause de php ? de python ? d’un module python en particulier ?

Il est possible de le préciser dans info.json :

os: {
  min: 12
}

Incompatibilité avec des librairies du sdk Matter

Pour l’os min , c’est fait mais ça n’empêche pas la visibilité sur le market pour les utilisateurs avec Debian 11.

En effet. probablement pour savoir que le plugin existe et qu’il faut changer de version de Debian.

En principe c’est le core qui vérifie ce paramètre et n’effectue pas le téléchargement.

akenad :slight_smile:

oui d’où mon message avant « Debian 11 n’est pas supporté. Donc vous aurez une erreur si vous essayez de le télécharger. »

des bibliothèques python ?

oui car il faut des versions récentes

Pourtant avec pyenv, on peut installer la version de python que l’on veut et donc les modules associés à cette version python. Si le plugin fonctionne sous debian 12, avec un pyenv en 3.11+ ça va marcher dans un pyenv même sous debian 10…

Édit : le plugin matter est payant ? Je ne l’ai pas trouvé sur votre GitHub, j’aurais fait une PR…

Sur un RPi4 Debian 12, j’ai
-branché une clé SkyConnect (avec firmware OTBR 2.4.4)
-installé le plugin Docker Management
-ajouté utilisateur www-data dans groupe docker (sudo usermod -aG docker www-data)
-installé le « support thread »
-redémarré Apache
-cliqué « Lancer OTBR »

Il semble y avoir un problème avec le conteneur OTBR ?
(voir dernière ligne « Missing device path » dans log Matter)

Log Matter :

[matter/otbr] Init
[matter/otbr] PROGRESS_FILE=/tmp/jeedom/matter/otbr_install
[matter/otbr] LOG_FILE=/var/www/html/log/matter
[matter/otbr] RUN_AS_USER=www-data
[matter/otbr] CONTAINER=otbr
[matter/otbr] IMAGE=openthread/otbr
[matter/otbr] DEVICE=<none>
[matter/otbr] Docker déjà installé
[matter/otbr] Installation docker-compose-plugin
Reading package lists...
Building dependency tree...
Reading state information...
docker-compose-plugin is already the newest version (5.1.1-1~debian.12~bookworm).
docker-compose-plugin set to manually installed.
The following packages were automatically installed and are no longer required:
aspell aspell-en cups-pk-helper dictionaries-common emacsen-common enchant-2
fonts-droid-fallback fonts-noto-mono ghostscript gir1.2-handy-1
gir1.2-notify-0.7 gir1.2-polkit-1.0 gir1.2-secret-1 gsfonts gstreamer1.0-gl
gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-good
gstreamer1.0-x hunspell-en-us imagemagick-6-common libaa1 libaspell15
libc++1-16 libc++abi1-16 libcamera0.3 libdaxctl1 libdca0 libdirectfb-1.7-7
libdjvulibre-text libdjvulibre21 libdrm-nouveau2 libdv4 libdvdnav4
libenchant-2-2 libfaad2 libfftw3-double3 libfluidsynth3 libfreeaptx0
libgraphene-1.0-0 libgs-common libgs10 libgs10-common libgssdp-1.6-0
libgstreamer-gl1.0-0 libgstreamer-plugins-bad1.0-0 libgupnp-1.6-0
libgupnp-igd-1.0-4 libhandy-1-0 libharfbuzz-icu0 libhunspell-1.7-0
libijs-0.35 libimath-3-1-29 libinstpatch-1.0-2 libjavascriptcoregtk-4.1-0
libjbig2dec0 libjxr-tools libjxr0 libkate1 libldacbt-enc2 liblqr-1-0
liblrdf0 libltc11 libmagickcore-6.q16-6 libmagickcore-6.q16-6-extra
libmagickwand-6.q16-6 libmanette-0.2-0 libmjpegutils-2.1-0 libmodplug1
libmpcdec6 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libndctl6 libneon27 libnice10
libopenexr-3-1-30 libopenni2-0 libpaper-utils libpaper1 libpmem1
libraptor2-0 libsbc1 libsecret-1-0 libsecret-common libshout3 libsoundtouch1
libspandsp2 libsrtp2-1 libtag1v5 libtag1v5-vanilla libunwind-16
libvo-aacenc0 libvo-amrwbenc0 libwavpack1 libwebkit2gtk-4.1-0 libwebpdemux2
libwildmidi2 libwmflite-0.2-7 libyajl2 libzbar0 libzxing2
linux-headers-6.6.31+rpt-common-rpi linux-headers-6.6.31+rpt-rpi-2712
linux-headers-6.6.31+rpt-rpi-v8 linux-image-6.6.31+rpt-rpi-2712
linux-image-6.6.31+rpt-rpi-v8 linux-kbuild-6.6.31+rpt poppler-data
python3-cairo python3-cups python3-cupshelpers python3-smbc rpicam-apps-lite
system-config-printer system-config-printer-common
system-config-printer-udev timgm6mb-soundfont xdg-dbus-proxy zenity
zenity-common
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 51 not upgraded.
[matter/otbr] www-data déjà dans le groupe docker
[matter/otbr] Vérifications Docker
Docker version 29.3.1, build c2be9cc
Docker Compose version v5.1.1
active
[matter/otbr] www-data dans docker: OK
[matter/otbr] Installation terminée. Aucun lancement automatique OTBR ici.
[matter/otbr] Le démarrage OTBR se fait via start_otbr.sh après rafraîchissement d'état / redémarrage Apache si nécessaire.
[matter/otbr] Installation OTBR terminée avec succès
OK
Missing device path

EDIT : j’ai cliqué « Rafraichir les ports » et « Actualiser le statut OTBR » et le conteneur est passé à « RUNNING » :

Suite du Log Matter :

[start_otbr] Resolved device: /dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_1638af041892ed118e6bcbd13b20a988-if00-port0 -> /dev/ttyUSB2
[start_otbr] Container=otbr Image=openthread/otbr Device=/dev/ttyUSB2 WEB_GUI=1 FIREWALL=0 NAT64=0 DNS64=0
[start_otbr] Starting OTBR container
Unable to find image 'openthread/otbr:latest' locally
latest: Pulling from openthread/otbr
e63d0b36347c: Pulling fs layer
a26247e00da9: Pulling fs layer
4f4fb700ef54: Pulling fs layer
064a9bb4736d: Pulling fs layer
4795ebbe2a09: Pulling fs layer
4f4fb700ef54: Pulling fs layer
ccdb5f4ab3dd: Pulling fs layer
e3ee115a8b16: Pulling fs layer
dadbe54bc1a8: Pulling fs layer
b2179e9b2180: Pulling fs layer
4f4fb700ef54: Download complete
a26247e00da9: Download complete
ccdb5f4ab3dd: Download complete
62ffcd5bc852: Download complete
064a9bb4736d: Download complete
4795ebbe2a09: Download complete
e63d0b36347c: Download complete
dadbe54bc1a8: Download complete
e3ee115a8b16: Download complete
064a9bb4736d: Pull complete
b2179e9b2180: Download complete
4795ebbe2a09: Pull complete
a26247e00da9: Pull complete
dadbe54bc1a8: Pull complete
4f4fb700ef54: Pull complete
b2179e9b2180: Pull complete
e63d0b36347c: Pull complete
e3ee115a8b16: Pull complete
ccdb5f4ab3dd: Pull complete
Digest: sha256:10bf15987c50ade84b21bcea428f048fed2ab6ada0d55cdeb764e1bb0f76ffb7
Status: Downloaded newer image for openthread/otbr:latest
[start_otbr] OTBR container started
otbr Up Less than a second

J’ai cliqué « Créer / recréer réseau Thread »
=> message blanc sur fond rouge en bas à droite :
« Echec création réseau Thread: connect session fail: No such file or directory »

Jeedom-Matter-creer-reseau-thread-erreur-27032026

EDIT : j’ai cliqué « Lancer OTBR » à nouveau :

Suite du Log Matter :

[start_otbr] Resolved device: /dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0_1638af041892ed118e6bcbd13b20a988-if00-port0 -> /dev/ttyUSB2
[start_otbr] Container=otbr Image=openthread/otbr Device=/dev/ttyUSB2 WEB_GUI=1 FIREWALL=0 NAT64=0 DNS64=0
[start_otbr] Removing existing container otbr
[start_otbr] Starting OTBR container
[start_otbr] OTBR container started
otbr Up Less than a second

et pas de création de réseau thread.

EDIT : à noter qu’un équipement « otbr » a été créé dans le plugin Docker :

akenad :slight_smile:

Tu peux essayer en sélectionnant le chemin réel, enregistrer et me donner les logs après avoir lancer OTBR stp

Idem.

[start_otbr] Resolved device: /dev/ttyUSB2 -> /dev/ttyUSB2
[start_otbr] Container=otbr Image=openthread/otbr Device=/dev/ttyUSB2 WEB_GUI=1 FIREWALL=0 NAT64=0 DNS64=0
[start_otbr] Removing existing container otbr
[start_otbr] Starting OTBR container
[start_otbr] OTBR container started
otbr Up Less than a second

akenad :slight_smile:

:rocket: Nouvelle version du plugin dispo

Refonte complète avec passage à Matter JS (Node.js)
:point_right: Le daemon Python est désormais supprimé

:warning: Une installation propre est recommandée avec suppression du plugin python

:floppy_disk: Sauvegarde des données possibles avant migration:

  • Sauvegarder chip.json et le fichier 145689244xxx.json présents dans data/matter-server
  • Après installation du plugin , les remettre dans plugins/matter/data/ avant de lancer une première fois le démon

Nouveautés principales

  • Support complet Node.js (matter-server)
  • Meilleure gestion du commissionnement
  • Support amélioré Thread / OTBR (Docker aussi normalement . à confirmer)
  • Compatibilité Debian 11 / 12 / 13
  • Meilleure prise en charge des boutons BILRESA (dual + molette)

:books:Documentation :
:point_right: Plugin Matter | Zyg0m4t1k — Jeedom Plugins

:memo: Changelog :
:point_right: Changelog | Zyg0m4t1k — Jeedom Plugins


:speech_balloon: N’hésitez pas à faire vos retours

4 « J'aime »