Coder Social home page Coder Social logo

node-red-matter's Introduction

Node-RED Matter Plugin

The Node-RED Matter plugin is an open-source project that enables the generation of Matter devices within Node-RED. Matter devices created using this plugin can be seamlessly integrated into popular smart home controllers such as Apple Home, Google Home, and Alexa. Additionally, you can control and retrieve data from these devices directly within Node-RED.

The project is heavily based on matter.js, the official JavaScript Matter SDK.

โœจ Features

  • Matter Device Generation: Generate Matter devices within Node-RED for easy integration with various smart home controllers.
  • Controller Compatibility: Compatible with popular smart home controllers such as Apple Home, Google Home, and Alexa.
  • Bi-Directional Communication: Control and read data from Matter devices directly within Node-RED.
  • Flexibility: Customize and configure the behavior of Matter devices based on your specific requirements.
  • Seamless Integration: Connect Matter devices to existing Node-RED flows effortlessly.

demo

๐Ÿ› ๏ธ Installation

To install the Node-RED Matter plugin, follow these steps:

  1. Open your Node-RED dashboard.
  2. Go to the palette manager and search for @node-red-matter/node-red-matter
  3. Install the plugin and load the provided example flow!

โ„น๏ธ Usage

To use the Node-RED Matter plugin, please follow these instructions:

  1. Launch Node-RED in your browser.
  2. Drag and drop the "Matter Device Status" or "Matter Device Control" node from the palette onto your workspace.
  3. In the node configuration, create a new Matter device or select an existing device.
  4. Establish the required connections between the Matter device node and other nodes in your flow.
  5. Deploy your Node-RED flow to make the Matter device available for control and data retrieval.

๐Ÿ“š Documentation

Find the documentation our our wiki.

โ›” Limitations

Currently, the Node-RED Matter plugin has the following limitations:

  • The plugin only supports 4 device types: Dimmable and not dimmable lights, and dimmable and not dimmable switches. More device types will be added in the future.

๐Ÿ’พ Backup

The generated Matter server configurations are currently stored in ~/.node-red/node-red-matter/matter-servers, or under wherever your Node-RED user directory is located.

Each service is stored in a sub-folder named after the configuration node ID, if you ever need to recreate a Matter configuration node but don't want to lose your existing virtual Matter devices and server, you can simply rename the folder with the new configuration node ID and it will automatically pick it up.

๐Ÿคฒ Contributing

We welcome contributions from the community to enhance and improve the Node-RED Matter plugin. To contribute, please follow these guidelines:

  1. Fork the project on GitHub.
  2. Create a new branch for your contribution.
  3. Make your changes and ensure they are thoroughly tested.
  4. Submit a pull request, explaining the purpose and benefits of your changes.

Please refer to the project's GitHub repository for any additional guidelines and instructions.

๐Ÿ’™ Support

If you have any questions, feature requests, or need assistance with the Node-RED Matter plugin, please reach out via the project's GitHub issue tracker.

๐Ÿ“ License

Node-RED Matter is released under the MIT License. Please review the license file in the project's GitHub repository for more details. Note: This project is not affiliated with or endorsed by Matter, Apple Home, Google Home, or Alexa.

node-red-matter's People

Contributors

fezvrasta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-red-matter's Issues

Not working with Google Home

I have a Raspberry Pi 4 running Node-Red 3.1 and all fully up to date. I installed this node set and put in the example flow. I have the Google Home Speaker which is Matter compatible running and talking to various Matter devices but can't seem to get the example to bring up the QR code for Google to respond to... probably just idiocy on my behalf but normally I get to grips with nodes quite quickly...

Controlling existing devices

Hi, I am struggling to find if node-red-matter can see and control devices which are already connected to some 3rd party Matter controller.

For example: I have Apple HomePod and I have connected couple of Matter enabled door sensors to it (also lights and other things). Is there a way, I can discover those devices in a NodeRed and control them from NodeRed?

Possible to use when nodered runs in docker?

Is it possible to use this while nodered is running in docker? I wasn't able to add my accessory defined using this plugin to the iOS Home app.
I tried mapping a static udp port into the docker container and specifying it in the Matter server config, but still no luck.

Does the communication need broadcast to work? If yes, any other way than to run the nodered container with host networking?

Exception when loading MatterController

Hi, I played around with node-red-matter, and I was even able to add one Device to Google Home, but shortly afterwards, Node Red failed to restart due to the following error:

1 Jan 12:03:45 - [info] [matter-server:MatterServer] Starting matter server
1 Jan 12:03:45 - [info] [matter-server:MatterServer] Added commissioning controller for 7e8198ecd6d4ee69
1 Jan 12:03:45 - [info] [matter-server:MatterServer] All related nodes added (1/1)
1 Jan 12:03:45 - [info] [matter-server:MatterServer] Starting matter server
1 Jan 12:03:45 - [info] Started modified flows
1 Jan 12:04:00 - [red] Uncaught Exception:
1 Jan 12:04:00 - [error] Error: No device discovered using identifier {"shortDiscriminator":15}! Please check that the relevant device is online.
    at MatterController.<anonymous> (/config/node_modules/@project-chip/matter.js/src/MatterController.ts:181:19)
    at Generator.next (<anonymous>)
    at fulfilled (/config/node_modules/@project-chip/matter.js/dist/cjs/MatterController.js:10:58)
[12:04:00] INFO: Service Node-RED exited with code 1 (by signal 0)

I re-installed node-red-matter and I can narrow it down to just adding a MatterControllerStatusNode and defining a MatterController and MatterServer. As soon as I do this, I get this error. Any idea, what's the problem?

only one virtual node-red device pairable with alexa echo dot

You can pair one virtual device with alexa when you set port udp 5540 - all works correct.
A second virtual device makes weired problems on alexa app and in node-red.
I was not able to setup more than one virtual matter node-red device and control it over alexa.
Any ideas ?

Can't connect to device from Alexa

Hi, I've been able to connect to Matter devices (in node-red-matter) from Google Home, but it doesn't work with Alexa (Echo Dot). Alexa first says "Looking for device" and then "Connecting to your device" and then "Something went wrong". On the other hand it doesn't show "Connecting to your device" if I give an invalid pairing code.
Debug logs in Node-red look like this:
2024-01-02 15:51:48.609 DEBUG MdnsScanner Found commissionable device 346C995C72FB2B84._matterc._udp.local with discriminator 3858/15 ...
2024-01-02 15:51:48.690 DEBUG MdnsScanner Found commissionable device 5B80FA48C1029259._matterc._udp.local with discriminator 2214/8 ...
2024-01-02 15:54:36.449 DEBUG MdnsScanner Found commissionable device 346C995C72FB2B84._matterc._udp.local with discriminator 3858/15 ...
2024-01-02 15:54:36.482 DEBUG MdnsScanner Found commissionable device 5B80FA48C1029259._matterc._udp.local with discriminator 2214/8 ...

I tried to connect to either of the two devices unsuccessfully. Any idea what could be the issue?

Some clarity on document to help get it to work (cannot pair, or actions cannot work)

Thanks developer for a userful node. This is not an issue, but I would like to share some details of how I got this matter node to work, maybe it is in the document somewhere, but I missed it. Hope this helps other users.

  1. On pair. Using Google home, google home will reject because it is not a registered device. Do see instructions at https://github.com/project-chip/matter.js#Pairing-and-Usage-Information on how to enable a testing device
  2. To control the device, the INJECT node is to inject to msg.payload.on
    To turn on, send msg.payload.on = boolean True
    To turn off, send msg.payload.on = boolean False.
    The example in the node uses msg.payload which does not work.

Can't find devices

Hi.

I used Node-Red for years with Virtual-Smart-Home plugin, but now I would like to start with Matter.

I've installed your node and imported the example (I just keep one light for simplicity).

Deploying the flow is ok, but Alexa nor Apple Home can't detect the light device.

I tested Alexa app in ios and android without success.

Apple Home says that the device needs a 'Central de accesorios' in spanish to complete configuration, seems to need a bridge or Hub.

My system is a RaspberryPi with Dietpi linux and it is connected via ethernet to my internet router.

Thanks for your nice work.

Roadmap for Node-RED Matter

Welcome to the thrilling journey of Node-RED Matter! This roadmap outlines the upcoming features that will elevate your project to new heights. Get ready for an entertaining ride filled with innovation and possibilities.

  • Unleash the Power of the Matter-Verse: Introduce a mind-bending feature that lets you connect and control "real" Matter accessories in Node-RED. Who said you can't make friends with inanimate objects? (controller)
  • Amplify the Awesomeness: Expand the accessory roster with brand new types that are going to blow your mind! But hold on, we need to give matter.js a little nudge to make them work seamlessly. The wait won't be long though, it's like counting down to the next blockbuster release.
  • Unify and Conquer with QR Code Mastery: We're taking convenience to a whole new level by introducing support for multi-device nodes. Say goodbye to the hassle of scanning multiple QR codes! Now, a single QR code is all you need to unlock the power of multiple devices, bringing simplicity and efficiency to your Node-RED Matter experience. (bridged devices)

Matter Controller node

The advanced Matter Controller node has emerged from the depths of development, equipped with robust capabilities. It currently supports simple OnOff devices and aggregators, enabling seamless integration with various accessories. By establishing a connection between the node and a Matter-enabled Philips Hue bridge, your entire lighting ecosystem becomes effortlessly accessible. However, the quest for expansion requires the following technical feats:

  • Extended integration to encompass a wider array of device types.
  • Implementation of device names as defined within the connected Matter bridge, ensuring accurate identification.
  • Implementation of comprehensive control mechanisms to manipulate and orchestrate connected devices effortlessly.

Matter Bridge node

Prepare to be amazed by the pinnacle of engineering marvels, the Matter Bridge node! This ingenious creation boasts impeccable functionality, allowing for the creation of multiple virtual devices with unparalleled ease. The bridge harmoniously pairs all defined devices when synchronized with your Matter controller. However, there is still a technical challenge to overcome:

  • Facilitate the refreshing of child devices within the bridge when paired with controllers, ensuring synchronization remains up-to-date and seamless.

2nd Aggregator doesn't show a QR Code

I today created a 2nd aggregator, with a diffrent name other port and so on.
But the aggregator isn't showing an QR code, the message is, that the aggregator is already connected.

Showing device is offline in Google home.

Hi @FezVrasta , tring your node. Great work.

Everything works fine and I'm able to connect node with my Google home app. (Lot of work at Google side)

But in last I'm not able to control it from Google home app. App show "device offline" always.

Anything I'm missing.?

Example not working properly

I think that the provided example has an error.
The payload you actually have to send to the matter device control node (at least for a light) has to look like:

{ on: true|false }

So I guess there is a mapping needed after (or in) the on/off inject nodes.
Also some documentation about the API of the nodes/devices would be great.

I tried the module in the last days to use it together with knx-ultimate and found that by try/error.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.