Introducing Node-RED-Matter: Create Virtual Devices with Ease for the Matter Protocol!

I’d recommend taking the Matter logo off the projects GitHub page as that’s a Trademark of the Connectivity Standards Alliance and can only be used for certified matter products

2 Likes

Installed @latest (Thanks @Colin ) all looked OK - created a device - tried to add the device using Alexa app on my phone (scanning the barcode) - just sat for a long time saying trying to pair and it eventually failed

I says make sure my device is in pairing mode but I don't see how I can make the virtual device do that :frowning:
It also talks about if device is connected to another smart home assistant then a new setup code is needed

But the setup code field is read-only so I can't enter a different one

@cymplecy the devices are always in pairing mode and the pairing code provided in the read-only field cannot be edited, it identifies the virtual device.

I read that Google should support uncertified devices (Not a Matter-certified device · Issue #93 · google-home/sample-apps-for-matter-android · GitHub) and I suppose Alexa should too. The Matter.js project lists all the supported controllers and they have been tested with uncertified devices.

I wonder if I'm doing something wrong during the setup that makes it work only on Apple or if it's just Matter being quirky... I'd love to pair with someone over Discord or Telegram to try to debug the issue if any of you guys have time. My handle is always the same I have on this forum on all platforms.

Apologies but I don't have time at present. Don't really use any of the hubs anyway so this is of side-interest only. We only got the Google Home to play with. Sits in the kitchen and only gets used very occasionally.

I'm not very interested in having someone's cloud sat in my house to do home automation. If Node-RED could act as a hub, or if there were an open source hub, that might be more interesting.

Thanks for sharing this node though, I'm sure it will be useful to some people.

3 Likes

@FezVrasta

Thanks very much for this contribution.

I will definitely be having a play and will definitely feedback. But for now, it is bed time. Been a long day.

Ps, some questions...

So as I understand it, you need a matter router (is that the right term?) And Google Home Hub is such a thing (I have one & a Google pixel phone) So in theory, I will be able to create (virtual) matter devices and be able to control like "hey Google turn on my virtual device" etc? And (apart from the voice action) this will be all LAN/internal? As I understood it, matter/thread is designed to be in-house (non-cloud) capable right?

Yes that's right!

Brilliant! Quite excited to try this out. I've always wanted to hook up voice actions to my internal stuff.

At first glance at least - this looks like it could be great fun. If it works - well done - I'll delve into this very soon - it's on my TODO list now :slight_smile: :slight_smile:

yeah .. sounds promising .. but I'm nut yet able to discover the virtual matter device

I'm using docker Node-Red and guess I have to open the specific UDP port .. will keep you posted on my progress

But annoyingly, seems currently to only work with cloud hubs? So that is rather a moot point isn't it? Am I the only one paranoid enough to think that Google/Apple/Amazon will be getting information anyway?

Hi @FezVrasta

I eventually managed to get a device added on Google Home. I am not sure if it is just janky or changing the test device I have on the developer console to product ID 0x8000 (I noted in your source the devices are hard coded with productId = 0x8000;`) fixed it. Before doing that, I was getting "Not a Matter-certified device".

So now the device is joined but its status in Google Home is offline. :frowning:

Reading up on the initial "Not a Matter-certified device" error, it seems google (unlike Apple and Amazon) are not permitting uncertified devices :frowning: poor show google, poor show! It is almost like you want me to get rid of all my google hardware investments and move to amazon (shudder) or apple (double shudder).

@TotallyInformation this works with any Matter controller, included Apple Home (that works completely offline) and Home Assistant.

@Steve-Mcl I'll allow to specify a different product ID from the UI! I'm not sure why it's showing offline though, I had this issue with a few devices during the development but it has been working fine since yesterday

1 Like

@FezVrasta Is it a goal of this contribution to enable someone with other (existing) hardware matter devices to be able to control them from node-red?

For example, I have a Nest Thermostat Gen 3 & this (as far as the internet says) was updated with Matter support in April. My ideal scenario is to be able to create a number of virtual matter devices that I can action (using node-red flows and voice actions) that I map through (node-red wires) to control the other physical matter devices. Ultimately, giving me the best of "in-house" and cloud access/voice actions, seamlessly integrated via our beloved Node-RED.

Yes I want to add a Matter controller node that will allow to pair physical Matter devices to Node-RED. I first need to work on a few more things on my list and then I'll get that done too.

4 Likes

I just published an update that adds a new matter-server node, this way a single server can power multiple devices, reducing the overhead. Each device still requires its own UDP port and configuration though.

npm install @node-red-matter/node-red-matter@latest in /.node-red directory. on a raspberry pi Zero 2W with a clean install of Bullseye and Node Red.

Unable to add the Node as an Alexa device as the Alexa App which is running on an iPhone would not connect using the node's Matter QR Code.

Tried with Pi's bluetooth make discoverable as well as just on, or even add device and searching.

Still no success with latest update, even using the manual pairing code.

Try deleting the .node-red/node-red-matter folder and restart Node-RED, then do the process again.

I just published a new version that allows to set NODE_RED_MATTER_LOG_LEVEL=0 as environment variable before starting node-red and will log a lot of useful information in the CLI.

Still no joy :disappointed: