Non jâutilise leur plugin matterbridge-example-dynamic-platform
, câest vraiment pratique ça gĂ©nĂšre des dizaines dâappareils de tous les types qui existent, ça permet de tester plein dâappareils !
Jâai poussĂ© une image pour corriger un petit bug, dans certains cas jâavais des appareils avec une deviceData vide ce qui cassait lâintĂ©gration
Par contre, jâarrive bien Ă contrĂŽler les prises dans Matterbridge, donc bonne nouvelle tout fonctionne !
Câest juste lâappareil « CookTop » que je nâarrive pas Ă contrĂŽler, mais je me demande si ce nâest pas juste un capteurâŠ
Ah, je crois avoir compris:
Comme ce sont des plaques de cuisson, elles ne sont contrĂŽlable quâen OFF, pas On (ce qui serait trĂšs dangereux!). Ca permet dâĂ©teindre Ă distance uniquement
Bon, un nouveau truc Ă implĂ©menter aha, mais bon je ne crois pas quâil y ait tant que ça dâappareil sur le marchĂ© pour ça, donc câest pas ma prioritĂ©.
Ce matin, jâajoute le contrĂŽle de 2 fonctionnalitĂ©s indispensables : gestion de la luminositĂ© et couleur des ampoules connectĂ©es
Je teste tout ça en rĂ©el avec lâexcellente ampoule Nanoleaft Matter Thread E27 :
Je viens de publier une nouvelle image avec gestion des couleurs et luminosité des ampoules
Je viens de publier une nouvelle image avec la gestion des capteurs dâhumiditĂ©
Je viens de publier une nouvelle image avec la gestion des thermostats (chauffage + climatisation), pour lâinstant je gĂšre la tempĂ©rature cible ainsi que lâallumage/extinction
On ne tâarrĂȘte plus !
une Machine notre @pierre-gilles
Quelques retours de tests
Une excellente feature ! Je vois les numéro des Endpoint
dans les noms des devices à ajouter et les ajoutés.
Par contre, je viens de supprimer le plugin somfy dans matterbridge et les devices appairés sont toujours présents
Ensuite réinstallation du plugin et je me retrouve donc avec des nouveaux numéros de Endpoint MAIS Gladys a gardé les anciens numéros pour les devices appairés.
Jâai testĂ© le haut/bas et ça ne marche pas.
Jâai dĂ©commissionnĂ© ce matterbridge, les appareils somfy appairĂ©s ont bien disparu.
Jâai ajoutĂ© le matterbidge et les appareils somfy sont rĂ©apparus avec leurs nouveaux Endpoint, et mes appareils sauvegardĂ©s ne sont plus reliĂ©s Ă rien , obligation de les supprimer et tout refaire.
De ce que jâai pu voir (avec le plugin somfy), les Endpoint
changent à chaque réinstallation comme tu le dis, par contre les serialNumber
et uniqueId
sont identiques Ă chaque fois. Je ne sais pas si ça peut ĂȘtre une piste.
Il faudrait aussi un spinner lorsque lâon dĂ©commissionne un device car dĂ©commissionner un matterbridge peut prendre du temps et on ne sait pas si ça tourne ou pas.
Oui, les devices appairĂ©s ne disparaissent pas mĂȘme si tu les supprime cĂŽtĂ© Matterbridge, câest comme ça que fonctionne Matter.
De ma mĂȘme maniĂšre, si ma prise connectĂ©e Eve Energy est injoignable, elle reste visible partout (sur mon iPhone par exemple, elle reste dans Homekit).
Pour le coup, ce comportement vient de Matter et pas de Gladys.
Oui, malheureusement comme le plugin change les numĂ©ros de endpoint on ne peut pas faire de matching entre lâancien et le nouveau.
Par contre, on pourrait Ă la limite afficher un « Pas de rĂ©ponse » sur lâancien, câest ce que fait iOS par exemple :
Ce nâest pas suffisant malheureusement, le uniqueId
est propre au device « parent » Matter, hors dans ce device je peux avoir plusieurs « child_device » avec chacun une liste de fonctionnalités.
Il nây a aucun identifiant en dessous qui ne varie pas.
Je serais curieux de voir ce qui se passe sur un autre controller Matter, tu pourrais tester le mĂȘme comportement sur iOS ou sur Google Home ?
Bien vu! Je vais ajouter ça
Jâai fais plusieurs tentative en passant sur Matterbridge de « bridge » à « childbridge » et oui, bien sur le endpoint change mais les endpoint des fonctionnalitĂ© est toujours dans le meme ordre, soit le endpoint du device + 1 etc. Donc en soit, tu devrais pouvoir les reappairer ensemble mais en essayant dâune autre facon.
Pour moi je reste sur le fait que :
- le node_id est un parametre => qui peut changer
- le endpoint est un parametre => qui peut changer.
Si pour le external_id tu prends :
- device => le numero de serie si dispo, ou le unique_id si dispo, ou autre chose ⊠(a trouver si rien dâautre de disponible alors tu previens que les donnĂ©es historiques seront perdues en cas de reappairage)
- features => external_id du device + « -1 » pour le premier endpoint du device, « -2 » pour le second etc.
Normalement il nây a aucune raison que tu ne puisse pas les reassocier et tu met a jour les parametres « node_id » et « endpoint » pour chacun des devicesâŠ
Tu te bases sur lâutilisation de Matterbridge, ils font leur sauce en interne mais ça nâest pas reprĂ©sentatif du protocole Matter dans son ensemble, ce nâest pas suffisant pour tirer des conclusions
Je ne pense pas que lâapproche que tu proposes soit conforme au standard Matter, et je nâai encore vu aucune autre implĂ©mentation dans lâĂ©cosystĂšme Matter fonctionner de cette maniĂšre.
Cela dit, tu as raison sur un point : on pourrait envisager de proposer Ă lâutilisateur de rattacher un nouvel appareil Ă un ancien, Ă condition que les deux aient exactement les mĂȘmes fonctionnalitĂ©s dans le mĂȘme ordre.
Mais ce nâest pas toujours possible, car :
- Un appareil physique peut recevoir des mises à jour et exposer de nouvelles fonctionnalités au fil des évolutions du protocole.
- Dans le cas de Matterbridge, le logiciel lui-mĂȘme peut Ă©voluer et ajouter des fonctionnalitĂ©s Ă des appareils dĂ©jĂ intĂ©grĂ©s.
Je vais malgré tout approfondir le sujet pour voir comment Apple ou Google gÚrent ce cas. Mon objectif reste de suivre le standard Matter de la maniÚre la plus rigoureuse possible.
@Terdious jâai testĂ© une approche de matching (pour remplacer les devices) basĂ© sur le couple unique_id + position, mais bon le risque câest vraiment de merger un device dans un autre device. Je nâai rien vu dans la spec qui garantisse ce fonctionnement.
Du moment que ça reste juste un matching au remplacement, ça me dĂ©range moins. CĂŽtĂ© external_id, on garde lâapproche actuelle qui est lâapproche officielle.
Ce serait top dâavoir lâinfo en « direct » !
Une idĂ©e comme au passage : et si on avait un bouton qui permettrait de dĂ©commissionner et de rĂ©appairer automatiquement lâappareil, ce serait jouable tu penses ?
Ca permettrait dâavoir un refresh des devices appairĂ©s. Ca pourra ĂȘtre dispo uniquement sur du matterbridge, pas forcĂ©ment sur des devices unitaires comme les tiens actuellement (car pas dâintĂ©rĂȘt je pense).
Non pas vraiment, car pour le coup il nây a pas dâidentifiant unique Ă ce niveau.
(Et je vous vois venir, non « VendorID » et « ProductID » ne sont pas des identifiants uniques )
Dans le cas de Matterbridge, lâidentifiant unique est au niveau du child device qui reprĂ©sente un appareil, donc je peux proposer Ă lâutilisateur un matching Ă ce niveau lĂ ! Je pense que ça ne marchera pas parfaitement, mais ça sera mieux que rienâŠ
Jâen profite pour te relancer sur ça
Ajout dâun spinner lors du decommissioning:
et avec un ping6
, tu penses que ça fonctionnerait mieux pour des tests plutĂŽt que checker lâinet6
de lâinterface rĂ©seau ?
Quand je dĂ©sactive ipv6 sur le syno, jâai bien inet6
qui disparait lors du ifconfig
sur le syno (pas dans le terminal du docker gladys, je nâarrive pas Ă checker car pas de commande rĂ©seau dâinstallĂ©e).
Alors jâai vraiment des trucs que je ne comprends plus et qui dĂ©passent mes compĂ©tences docker/rĂ©seau.
Sur mon syno jâai donc activĂ© lâIPV6 sur le rĂ©seau :
mes dockers (dont Gladys) sont en host et lâipv6 semble non actif :
et pourtant matterbridge voit de lâipv6 et câest lâipv6 dy syno lui-mĂȘme (normal car
host
) 
@Terdious @pierre-gilles docker sur PC/MAC ou NAS ?
Tu fais bien !! (par contre je nâai pas de gg home)
Alors je viens de tester sur iOS :
- crĂ©ation dâun domicile dans lâapp Maison
- apparaige avec Matterbridge via qrcode : ok
- dĂ©tection auto des appareils somfy et ajout dans Maison dans diffĂ©rentes piĂšces et crĂ©ation dâune scĂšne open/close
- tests de montée/descente : ok (pas terrible je trouve la gestion des sliders)
- test de la scĂšne : ok
- désactivation du plugin somfy dans matterbridge : TOUS les devices (sauvegardés donc) disparaissent de Maison ainsi que scÚne associée
- rĂ©activation du plugin : TOUS les devices somfy rĂ©apparaissent et sont tous placĂ©s dans une seule piĂšce par dĂ©faut (garage) mais la scĂšne nâest pas revenue
- test open/close : ok
- suppression du plugin somfy dans matterbridge : TOUS les devices (sauvergadés donc) disparaissent de Maison
- réinstallation du plugin somfy (donc nouveau Endpoint : TOUS les devices somfy réapparaissent et sont tous placés dans une seule piÚce par défaut (garage)
- test open/close : OK
Chose intéressante, le plugin matterbridge-somfy a « retrouvé » les anciens Endpoint et semble les faire coïncider avec les nouveaux :
Je dĂ©commissionne et rajoute matterbridge dans Gladys : les noms gardent les anciens Endpoint mais il semble quâune synchro ce soit passĂ©e car mon volet de test (Salon PF) me redemande une piĂšce Ă sauvegarder alors que jâavais mis « maison ». Par contre lâopen/close ne fonctionne pas.
Je redĂ©commissionne et rajoute de nouveau ⊠enfin jâessaye car ça ne veut plus



et avec un
ping6
, tu penses que ça fonctionnerait mieux pour des tests plutĂŽt que checker lâinet6
de lâinterface rĂ©seau ?
Quand je dĂ©sactive ipv6 sur le syno, jâai bieninet6
qui disparait lors duifconfig
sur le syno (pas dans le terminal du docker gladys, je nâarrive pas Ă checker car pas de commande rĂ©seau dâinstallĂ©e).
Je nâutilise pas exactement ifconfig, jâutilise dans Node.js le module core os
:
https://nodejs.org/api/os.html#osnetworkinterfaces
Je fais:
const interfaces = os.networkInterfaces()
Ce qui me renvoie quelque chose de ce style:
{
lo: [
{
address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8'
},
{
address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 0,
internal: true,
cidr: '::1/128'
}
],
eth0: [
{
address: '192.168.1.108',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '01:02:03:0a:0b:0c',
internal: false,
cidr: '192.168.1.108/24'
},
{
address: 'fe80::a00:27ff:fe4e:66a1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '01:02:03:0a:0b:0c',
scopeid: 1,
internal: false,
cidr: 'fe80::a00:27ff:fe4e:66a1/64'
}
]
}
Ensuite, je regarde si des adresse « IPv6 » sont disponibles

Quand je dĂ©sactive ipv6 sur le syno, jâai bien
inet6
qui disparait lors duifconfig
sur le syno (pas dans le terminal du docker gladys, je nâarrive pas Ă checker car pas de commande rĂ©seau dâinstallĂ©e).
Normalement, si tu nâas plus dâinterfaces ipv6, ça devrait aussi disparaitre cĂŽtĂ© Gladys.
Si tu veux voir le rĂ©sultat de la commande chez toi, tu peux ouvrir lâinspecteur de ton navigateur et sĂ©lectionner cette requĂȘte :

@Terdious @pierre-gilles docker sur PC/MAC ou NAS ?
Pas sûr de comprendre la question ? Je développe sur Mac et mon Gladys tourne sur un Beelink mini S12 Pro

Alors je viens de tester sur iOS :
Merci du test !

- désactivation du plugin somfy dans matterbridge : TOUS les devices (sauvegardés donc) disparaissent de Maison ainsi que scÚne associée
- rĂ©activation du plugin : TOUS les devices somfy rĂ©apparaissent et sont tous placĂ©s dans une seule piĂšce par dĂ©faut (garage) mais la scĂšne nâest pas revenue
Ok, je mâen doutais, iOS ne garde aucune trace des appareils, et donc nâa pas a faire de matching ancien â nouveau, il supprime tout. Câest violent je trouve AprĂšs, pour lâinstant sur ces plateformes, il nây a pas dâhistoriques (pas de vue graphique), donc ils sâen foutent un peu du legacy, ce qui nâest pas notre cas.

Je dĂ©commissionne et rajoute matterbridge dans Gladys : les noms gardent les anciens Endpoint mais il semble quâune synchro ce soit passĂ©e car mon volet de test (Salon PF) me redemande une piĂšce Ă sauvegarder alors que jâavais mis « maison ». Par contre lâopen/close ne fonctionne pas.
Pour info, je nâavais pas encore poussĂ© mes amĂ©liorations de ce matin, donc tu as testĂ© la version de samedi soir
Je viens de pousser un nouveau build Docker avec cette fois-ci le matching automatique basé sur le couple « UNIQUE_ID + position » (solution imparfaite je le rappelle, mais « good enough »)

Je redĂ©commissionne et rajoute de nouveau ⊠enfin jâessaye car ça ne veut plus
Pour autant, tu dois encore le voir dans la liste dans « paramĂštres » non? Le decommissioning nâa pas du marcher