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

@optic there's a bug that currently makes so that if you have more than one standalone device or aggregator the pairing information can get mixed up. I suggest to only use a single aggregator and add devices to it for now.

same behavior for single aggregator and multiple devices for me.

i did some packet tracing and noticed that my server running node-red didnt receive any mDNS packets, which are used for discovery.
I am on Ubuntu 18 and was using netplan.. Netplan does not support mDNS.

I fixed that and the server now receives all mDNS packets from HA and Alexa.
The pairing process with HA now takes <5 seconds and the debug log of that process in nodered is only a few entrys long.
But nodered just does not seem to react to the discovery request from alexa devices. (debug log stays empty even with mDNS packets registering)

sadly, i think i have to give up for now :frowning:

1 Like

Disappointingly I am unable to reproduce the successful connection with the virtual matter nodes on either the current release v0.3.1, or now, on any of the earlier releases. Maybe I struck lucky last time. Also I can only ever discover one device at a time to potentially connect to, hope that finding is useful.

Sorry 0x8000 is the common test product ID you need to use 0xFFF1 - 0xFFF4

It will need to match the IDs used by the nodes my package allows you to specify it not sure about the other one

I realized the issue had to do with being logged into a different google account for Developer vs. Google Home (the whole Google Workspace / Google Home incompatibility....) Tried to delete the post prior to it getting flagged to you.

All is working as expected now. Thanks

So what am I doing wrong on trying to control a dimmable light. I've tried just putting the dim value in the payload and also tried passing status.on = true plus status.level = #

For the later, I'm getting the following error from the device node: "Unknown device type DimmableLightDevice"

You should send payload = { on: Boolean | null, level: number | null }

I tried that and that is what generated the error message. I had accidentally configured the node as a on/off switch initially. I deleted that device/node and re added. I wonder if there is something cached (I did a restart already) that is confusing the system since in Google Home I see multiple matter devices but only have the one configured?

EDIT: NVM, now I see that I had the extra depth of the "payload.status" in my Json. Just fixed that and is now working!!!


@FezVrasta Here's what I'm seeing. I'm using a dimmer light controller and status node (as a side note, the labels on those two nodes seems backwords since the "input/controller" node is telling Google Home the current status of the device and the "output/status" node is commands from Google Home to tell the device to change).

If I send a payload with on:true and level:xx to the Controller node (single message), I get two messages from the Status node. If I send just a payload.on:false I only get one message out of the Status node. The bigger issue is sometimes when it sends those two messages, one will change status.on: to false (I've verified there is no add'l message being sent to the Controller node telling it that on: is false. This doesn't happen every time, but more times then not. Let me know if you want me to pull logs or anything else to help troubleshoot (or if my explanation doesn't make sense)

So I changed my flow to only send single payload messages.

I'm curious why you have the nodes separated. IMO, based on my time with the NORA nodes, it would be much easier to deploy as a single node and include the ability to turn on or off pass through messaging. Right now I have the situation where when I update the Matter Node, I get that same command fed back to my system which creates some extra loops (fortunately already had some filter nodes in place to block continuous loops). I think I'm going to have to put in a logic gate to block outputs from the Status node if I send the command through the Controller node. Would be helpful if that was built into the node as an option