telemetry
Quoi de neuf

Matter !

  • Forum Electricité - Domotique
  • Auteur du sujet Auteur du sujet jcoenen
  • Date de début Date de début
  • #1
Tant qu'on y est et que cela semble intéresser certains (hein @RobBZ ?).

Ayant un shelly (celui avec le bidule Lora Add on) mis à jour avec le dernier firmware, j'ai tenté le coup de Matter, et bien c'est assez bluffant.

Une fois démarré avec matter, le Shelly donne un QR code que j'ai lu avec mon iPhone (App Maison), bing, paf, crac, le truc apparait dans l'app et est pilotable, ca prend 30 secondes pour un néophyte (moi en l'occurence).

Donc ayant quelques problèmes avec les custom cluster zigBee et les implémentations des app qui les gèrent je me suis dit et pourquoi pas matter ?

Je viens donc de faire un petit essai de définition d'un device matter sur un ESP32-C6-Zero (comme pour le zigbee). En utilisant le WiFi comme niveau 1 (thread on verra plus tard).

Utilisation de l'IDE Arduino avec la librairie ESP32-Core qui implémente Matter (expressif) et un sketch dans les examples: matter minimum (restons simple).

Quelques petit cafouillages pour le link, matter étant assez gros il faut la bonne taille de partition et ce n'est pas indiqué dans la doc de l'IDE, une fois la bonne taille choisie (Huge App (3MB No OTA)) le linker me sort un module qi est chargé sur le EP32-C6-Zero.

Connexion au WiFi et dans la console, je reçois un lien vers un QR code sur internet.

Scan du QR Code sur mon iPhone (comme plus haut), et reBing, Repaf, Recrac le device apparait dans l'App Maison. Par la même occasion, comme j'utilise un Mac, c'est directement (via iCloud) configuré sur l'application Maison. Cela doit être pareil avec les autres (Google et Amazon).

Pettit test ON/OFF et la loupiotte Led s'allume et s'éteint (il y a un peut de latence due au réseau sans doute).



Pas mal, pas mal. Reste à voir un peu les clusters et la mécanique interne pour pouvoir en tirer quelque chose.

Je me tâtais pour faire l'acquisition de C6 et H2 et bien maintenant j'ai une bonne excuse (si tant est qu'elle soit vraiment nécessaire).
 
Dernière édition:
  • #2
Pour ceux qui ont Home assistant et qui veulent avoir accès de manière simple à certains item à l'extérieur via Google assistant / Alexa. Il existe des addons permettant de faire le lien très facilement (par exemple https://github.com/Luligu/matterbridge-home-assistant-addon ou matter hub ) via matter. il faut posséder quand même un accessoire Google home à la maison qui fera office de hub. Mais une simple nest mini est normalement suffisante. C'est probablement la manière la plus simple de connecter ha à Google assistant / Alexa
 
  • #3
Effectivement un addon Matter est disponible sur HA.

Ayant déjà appareillé le device avec l'AppleTV, j'ai refait un pairage via celle-ci (en fait l'Apple TV fourni les infos de l'appareil via un code).

Cependant je ne suis pas certain qu'un hub soit nécessaire, il est indiqué dans la documentation qu'un appareil peut être rajouté à Homeassistant directement mais il faut pour cela utiliser le compagnon app Android ou IOS pour effectuer le pairage.

 
  • #4
Vérification faite, il n'y pas besoin de hub pour la prise en compte des device matter par HA.

Reprogrammation du ESP32-C6 pour piloter la color LED et définition en direct sur HA, le RGB ne semble pas être très correct mais bon c'est une question accessoire (R et G inversés ?).

 
Dernière édition:
  • #5
C'est vraiment génial d'avoir le temps pour tout ça :p
Ce soir je me suis battu avec une ESP32 C3 pour lui mettre l'ethernet W5500 et un premier capteur de test. C'est mon 3ème prototype...

Le premier était intégralement en filaire et a fonctionné du premier coup. Mais c'était juste pour le test, cest vraiment pas pratique.

Le 2ème est mon premier prototype compact, il est en court circuit, je n'ai pas su le dépanner.

Le 3ème est connecté à mon home assistant mais ne remonte pas encore de sonde. Je pense que j'ai dû inverser sda et scl...

Pour le moment la partie logicielle, je la laisse à ESPhome... C'est bien plus simple pour moi débuter, on peux directement réinjecter le programme modifié à distance dedans.

existe des addons permettant de faire le lien très facilement (par exemple https://github.com/Luligu/matterbridge-home-assistant-addon ou matter hub ) via matter.

Donc je pourrais renvoyer en Matter mes capteurs ESPhome au besoin :D Mais ça fait quand même pas mal usine à gaz...
J'ai déjà mon Home Assistant à l'extérieur. C'est assez facile à faire si on a quelques notions de réseau et de linux.
 
  • #6
Reprogrammation du ESP32-C6 pour piloter la color LED et définition en direct sur HA, le RGB ne semble pas être très correct mais bon c'est une question accessoire (R et G inversés ?).
Tu es vraiment une machine !!
J'ai passé ma soirée pour remonter aucun capteur dns ma domotique ...
 
  • #7
Suis coincé dans mon bureau après une chute de cheval et une 3eme commotion cérébrale donc j’ai du temps à revendre (et j’ai un airco donc une autre bonne excuse pour regarder mes écrans).

Concernant ethernet quand j’ai acheté le border routeur expressif, j’ai aussi pris un truc pour connecter ethernet mais par paresse je n’ai pas encore essayé le bidule, un de ces jours sans doute.

Pour matter, oui c’est lourd mais en contrepartie il peut communiquer avec beaucoup de monde de manière indépendante, chaque device est indépendant des autres, comme KNX, et donc gros avantage.

ESPhome c’est pas mal mais on est limité à ce qu’ils proposent (même si c’est pas mal) et on ne vois pas très bien ce qui se passe en dessous donc pas moyen de moyenner … mais mes webcam sont en esphome faut pas non plus toujours vouloir réinventer la roue.
 
  • #8
Ce soir je me suis battu avec une ESP32 C3 pour lui mettre l'ethernet W5500 et un premier capteur de test. C'est mon 3ème prototype...
Si je peux donner un tit coup de main …

Esphome si je me souviens bien n’a pas de retour direct c’est pour ça que pour vérifier mon câblage et les capteurs j’essaye avec l’IDE arduino, une fois validé alors je passe avec les couches supérieures (connexions/protocoles …) histoire de ne pas trop mélanger les différents niveaux.

Ok pour l’ethernet, avec le SPI vu le nombre de fils on augmente les probabilités d’erreurs de câblage.

I2C, normalement on peut inverser les fils sans dommages, attention que certains boards ne sont pas câblés de manière standard, et comme on peut mettre le I2C un peu ou on veut, la couche logicielle doit être adaptée (Wire.begin(SDA,SCL) et spécifier les pins utilisées, celles par défaut n’étant pas toujours celles qu’on a utilisé) d’où l’intérêt de valider avec l’IDE.

PS commande passée pour 5xC6 et 5xH2
Maintenant je vais essayer d’implémenter la couche thread pour l’utiliser avec matter.

IMG_0166.jpeg
 
Dernière édition:
  • #9
Apparement pas de séquelles suite a la chute, mais je dois y aller molo-molo.

@RobBZ j'essaye ESPHOME avec Thread !

ca à l'air facile comme ça mais mais mais encore faut il mettre une bonne configuration ...

Donc sur mon C6-Zero 4 MB de flash --> board = esp32-c6-devkitm-1
Thread doit être programmé avec Expressif idf framework: esp-idf

Du border router: e
xtraire les caractéristiques du réseau et mette ça dans la section openthread:

Pas de WiFi, ESPHOME rouspète si OTA ou WiFi ou captive portal sont définis donc j'ai balayé tout ça de la config initiale.

Ce qui donne:

Code:
esphome:
name: openthread
friendly_name: OpenThread

esp32:
board: esp32-c6-devkitm-1
framework:
type: esp-idf


# Enable logging
logger:

# Enable Home Assistant API
api:
encryption:
key: "DhJBZMCwo8WO2bKJZfDkjhFTim5lmVaE1k8+y3vhXAM="

ota:
- platform: esphome
password: "d269d682a8a67e8ca5ba7b30c67c69c2"

network:
enable_ipv6: true

openthread:
channel: 26
network_name: OpenThread-1805
network_key: 0xd3f7864e520efdaa320efc2b333ccc21
pan_id: 0x1805
ext_pan_id: 0x9f75feb32cfd63f6
pskc: 0x11f04e870b6db62b5b51ef7f588baffd
force_dataset: true

Compilation: pas toujours successfull du premier coup, bizarre car après ça marche sans rien changer et comme les erreurs ne sont pas très explicites, enfin bon on insiste un peu et ça passe.

Installation via Chrome et ESPHOME WEB.

Tadaaaaa

De gauche à droite:

La page web du broder routeur qui est connecté par le device pour obtenir son adressee IPv6 sur le canal thread correspondant => OK.
IPv6 routeur: fd5e:898d:e77d:1:d216:c92c:709d:6b6f
IPv6 device: fd5e:898d:e77d:1:9cb1:359d:3e44:6008

Accessible ?
test de 10 ping (ICMP) de 1024 bytes

YES
(de mieux en mieux).
Code:
> ping FD5E:898D:E77D:1:9CB1:359D:3E44:6008 1024 10
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=23 hlim=255 time=380ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=24 hlim=255 time=368ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=25 hlim=255 time=370ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=26 hlim=255 time=364ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=27 hlim=255 time=363ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=28 hlim=255 time=369ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=29 hlim=255 time=371ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=30 hlim=255 time=383ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=31 hlim=255 time=401ms
1032 bytes from fd5e:898d:e77d:1:9cb1:359d:3e44:6008: icmp_seq=32 hlim=255 time=428ms
10 packets transmitted, 10 packets received. Packet loss = 0.0%. Round-trip min/avg/max = 363/379.700/428 ms.
Done

Au milieu le log ESPHOME Device's name openthread (oui je n'ai pas vraiment beaucoup d'imagination).
A droite le log du border router sur son port série.

En conclusion ça m'a l'air de fonctionner, au moins sur la couche réseau.

Bon à ct'heure on va li tchouki un ptit capteur et voir ce que ça raconte ...

Screenshot 2025-06-19 at 17.31.24.png


Screenshot 2025-06-19 at 17.34.32.png
 
  • #10
Difficile dans ces moments là de s'occuper, écouter les médecins et prendre son mal en patience... o_O Je te souhaite un maximum de courage...

Je viens de rentrer et d'inverser les 2 fils...j'y pense depuis hier soir... Tadaam ! Ca fonctionne !
C'est juste SDA et SCL qui sont inversé quelque part, je vais pas chercher :laughing:

Donc j'ai bien mon module compact qui fonctionne. Maintenant je vais essayer de lui mettre le capteur à ultrason pour mesurer directement le nombre de litres restants dans ma citerne :)
Je pense pas y arriver aujourd'hui, trop de fatigue...

J'ai vu ton essai avec Thread, c'est vraiment impressionnant, je ne savais pas que c'était ainsi dans ESPhome ! C'est pas encore vraiment documenté... Je vais devoir acheter le matériel nécessaire pour faire les tests maintenant :joy:
... Et mes modules ethernet n'auront plus lieu d'être :eek:

Normalement tu as la led dessus avec laquelle tu pourrais déjà jouer. Mais je ne vois pas commebt tu pourrais directement injecter du code dessus à distance comme en wifi ou ethernet ...
 
  • #11
Hmmmm j’ai mis la température cpu, mais bien que thread soit connecté, rien ne sort et HA ne voit pas le device alors qu’il est bien référencé par le border routeur. En farfouillant dans la doc esphome matter ne semble pas. implémenté… et comme le wifi est désactivé par thread HA ne peut pas accèdé aux données par websocket donc on est coincé, je vais revenir à l’ide arduino.
 
  • #12
ESP32-H2-Supermini (et C6) arrivés hier :party:

Expressif proposant des exemples de device matter sur thread dans leur librairies, je me propose d'essayer ça.

Au final en lisant bien et en respectant les procédures d'installation, on arrive à quelque chose.

Installation:

- Expressif border router sur base de leur kit esp32-S3/H2, installé avec la dernière version de l'idf (5.4.1).

- Compilation et installation de l'exemple light sur un esp32-h2 super-mini.

- Pour intégrer l'appareil dans le réseau créé par le border router il faut utilise le chip-tool d'expressif, ceci-ci permet de connecter l'appareil en BLE (bluetooth) et de lui refiler le code d'intégration au réseau IPV6 en thread (c'est pareil avec GooGle et Apple qui intègrent cela dans leur application smartphone et cela est totalement invisible à l'utilisateur).

Voici donc le résultat:

à gauche la console de l'appareil, au centre la topologie du réseau thread et à droite haut commande chip-tool qui fait la config via BLE et en bas la console du border router qui détecte l'inclusion de l'appareil dans le réseau (obtention d'une adresse IPV6).

Deux appareils dont détectés par le Border Router), le premier étant un appareil thread only sur un esp32-C6 zero.

J'ai pu aussi configurer le routage des paquets IPV6 entre les appareils et des machines sur le réseau. (IPV4/V6), mais jusqu'à présent c'est fait partir de commandes manuelles.

Pas réussit a voir les appareils avec HomeAssistant, le border router est bien configuré via l'add-on, et les pages d'information sont bien retournées, mais il manque quelque chose semble-t-il ...

Conclusions: Matter over WiFi fonctionne assez bien, les appareil sont bien reconnus automagiquement, par contre le développement d'appareils via les librairies n'est pas encore streamlined. En ce qui concerne ESPHome et Tasmota, comme ils rajoutent des couches supplémentaires le code généré est vraissemblement alourdi de quelques MB et c'est ce qui cause sans doute mes problèmes de core sur mes C6-Zero.


Screenshot 2025-06-27 at 16.55.16.png


Screenshot 2025-06-27 at 16.45.13.png
 
  • #13
Appareil matter implémenté sur esp32-C6 Zero avec Thread !

Sequence:

Démarrer le bidule (après compilation avec les bon paramètres o_O)

Thread commissioning: rejoindre le réseau thread du border router (esp32-S3 et H2 + connexion ethernet)

Après il faut faire le commissionnant de matter, mais là je coince un peu, pas de document pour faire ça manuellement, c'est toujours via un application smartphone qui normalement fait tout automatiquement, sauf que pour cela il faut tout lui dire et donc dans mon cas, c'est le manège enchanté, ça tourne et tourne et tourne toujours.

Donc vérification des connexions:

Device matter/thread est sur l'adresse IPv6 fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6
Mon réseau est sur 2a02:578:8545:600::/64

Mac en0 2a02:578:8545:600:1060:5adf:e948:e586
Mac Wifi 2a02:578:8545:600:f9e5:b2cf:da4a:4292
Raspberry pi 4 2a02:578:8545:600:4894:a4d0:d851:e185
device matter/thread fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6

ping6 vers fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6 fonctionnent sur ma et rpi

Et pour vérifier la route prise
sur rpi
traceroute to fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6 (fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6), 30 hops max, 80 byte packets

1 fd81:e6bf:551a:0:da3b:daff:fe58:76cf (fd81:e6bf:551a:0:da3b:daff:fe58:76cf) 4.841 ms 4.848 ms 6.941 ms
2 fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6 (fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6) 58.918 ms 81.723 ms 110.716 ms

Sur Mac

traceroute6 to fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6 (fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6) from fd81:e6bf:551a:0:47d:f1af:aa3a:7bbc, 64 hops max, 28 byte packets

1 fd81:e6bf:551a:0:da3b:daff:fe58:76cf 123.243 ms 3.872 ms 4.128 ms
2 fdbd:8ba4:efce:1:897d:ee43:a6f8:dff6 54.714 ms 36.975 ms 41.028 ms

Donc j'ai bien une connexion IPv6 de mon réseau vers le réseau thread et ca ne peut que passer via l'OTBR.

De ce côté là mon Setup est donc validé.

Il ne reste plus qu'à voir pourquoi le client matter n'arrive pas a causer au device, cela doit être un problème de commissioning (là où le client matter reçoit les informations de configuration qui sont invisibles pour nous pauvres mortels, et heureusement disait l'autre :joy:).

Donc cela confirme bien mon opinion, plus un système est "simple" pour l'utilisateur, plus il est compliqué pour le développeur (surtout quand les docs sont écrites par des trucs du genre deepseek et autres Chat j'ai pèté )...
 
  • #14
C'est clair que ça n'a pas de raison de ne pas fonctionner... :laughing:
Si on a pas d'ipv6 dans son routeur, ça fonctionne comment ? o_O

J'ai reçu mes 3 ESP32 H2 et ma clé Sonoff tanto. Je pourrais faire un essai Thread quand le temps me le permettra... :blush:
 
  • #15
Le routeur en ipv6 n’est utile que pour les connexions extérieures, en interne le paquet ipv6 est encapsulé dans la frame ethernet et sera décodé par les clients, par contre ceux ci ne peuvent obtenir une adresse ipv6 du réseau local que s’il existe un serveur dns ipv6. D’habitude en ipv4 c’est fait par le routeur, mais rien n’empêche d’en mettre un sur une autre bécane pour l’ipv6.

Il y a des possibilités de passer de l’ipv4 à l’ipv6 et vice versa mais je ne connais pas trop le mécanisme … c’est comme cela qu’on peut faire un ping vers google ipv4 (8.8.8.8) à partir d’un esp32 thread qui n’a pas l’ipv4 du tout d’ailleurs.

Si j’ai deux ou trois heures je jetterai un œil la dessus.

Chouette sonoff E en thread tu me tiens au jus ?
Le mien est en route.


J’ai commandé un autre S3/H2 pour essayer un gateway matter/zigbee dont le code est disponible sur expressif github. Cela ouvrirait de belle possibilités sur des installations pré-existantes
 
  • #16
Module esp32-h2 configuré avec matter et thread via expressif zerocode.

Mais pas avec openthread, ça fonctionne via mon apple tv mais pas moyen de jumeler avec l’OTBR.

Prochain essai tasmota …
 
  • #17
Haaaaa Tasmota, esphome, matter, thread, mutually exclusive ...

Quelqu'un aurait-il une expérience de création d'un firmware ESP32 H2 ou au pire C6 qui intègre Matter sur Thread ?

Car là je coince avec les trucs du genre yakafaireça.

- ESPHome permet thread mais pas Matter.
- Tasmota permet Matter mais pas thread, seulement WiFi.
- Expressif zerocode donne jusqu'à présent le meilleur résultat mais pas moyen de connecter le Joiner Mater à leur réseau OpenThread (même maison mais certainement un département différent).

Reste plus qu'a retrousser ses manches et utiliser soit l'IDE expressif soit l'IDE arduino (Grrrrr Silicon Labs) avec les librairies matter et thread. Belle façon de passer les soirées hivernales.

Expressif ?

Ahaaa

Y aurait-il de la lumière au bout du tunnel ?
 
Dernière édition:
  • #18
Fiat LUX !

Habemus matter !!!

Screenshot 2025-10-24 at 17.35.15.png Screenshot 2025-10-24 at 17.38.31.png

Le esp32-h2 (sans wifi) est connecté via le routeur de bordure homemade esp32-S3/H2.

Il a fallu procrastiner mais au bout du compte ça maerche une fois.

Le firmware à été généré par l'IDE expressif.

La suite sera de voir si du côté de l'IDE arduino on peut reproduire la chose.
 
  • #19
Arduino IDE:

Matter light compilé et installé, le led est bien pilotée par le bouton "Boot" du module.

Commissioning:

Openthread via homeassistant, fonctionne jusqu'a l'insertion dans le réseau, le module prend bien une adresse IPv6 et et bien "adressable", mais HA n'arrive pas à définir l'entité.

Via Apple TV, aucun problèmes a signaler, le device est bien reconnu, intégré dans le réseau et accessible via l'app maison.

Screenshot 2025-10-25 at 19.11.33.png

Cependant si j'éteint a partir du bouton, l'info ne remonte pas sur l'app.

Conclusions; ESP32 sur Openthread commence à donner des résultats, mais les différentes méthodes pour implémenter la stack ne sont pas encore 100% fiables.

Expressif Idf semble donner les meilleurs résultats (mais ce n'est pas l'IDE le plus sexy).
Arduino IDE via la librairie esp32-expressif est encore à la traîne
Zerocode expressif, un peu limité dans les possibilités offertes
ESPHome et Tasmota ne sont pas encore prêt en thread/openthread, mais ça viendra.

Ca avance, bientôt on va pouvoir bricoler des trucs en Matter et rester au contact avec les derniers avancements en matière de domotique.
 
  • #20
Matter via Arduino IDE, commissioning réussit sur Openthread border router et le Homeassistant sur raspberry 3.

Essais positifs sur ESP32-H2 devkit mais encore mieux sur le esp32-H2 mini.

Pour l'instant pas de connexion entre mes machine LXC (openhab et Homeassistant) et le routeur de bordure, certainement un problème de routage réseau.

Voila les 4 devices Matter en action.

Screenshot 2025-10-27 at 16.36.04.png
 

Nos articles

On a aimé dans le forum

Retour
Haut