“An Alternative to the Official Matter SDK”

An interview with Ingo Fischer, software developer and lead of the open-source project matter.js (link). The additional software developer kit for the Matter standard is based on JavaScript and expands the possibilities for building devices. matter-smarthome spoke with the Lead developer about its specific features and the differences to the official SDK from the Connectivity Standards Alliance (CSA).

Dies ist die Übersetzung eines deutschen Interviews. 
Zum Original bitte hier entlang.

Mr. Fischer, how did you end up creating a new software development kit for Matter?

Ingo Fischer: I’ve been involved in open-source development for about ten years now, and I’ve been a core developer for ioBroker for quite a while – that’s a smart home system from Germany (link). When Matter was released in 2022, of course we started thinking about how to integrate it. Since ioBroker is written in JavaScript, it made sense to use that language here as well.

There was also a developer from Hawaii who had already started working on this, so we teamed up. That’s how today’s matter.js came to be. Currently, it’s just me and one other developer from the US working on the project. We do most of it in our spare time, but we’ve made good progress in implementing Matter.

So it originally started as a software integration. But can matter.js also be used for developing devices?

Fischer: Yes, from the very beginning we wanted to create something that could be used for devices, bridges, and Matter controllers alike. But we never expected to get this far, this quickly.

“We wanted to create something that is suitable for devices and bridges as well as controllers.”

There’s also an SDK from the Connectivity Standards Alliance, which is open source too. What’s the advantage of matter.js over the official kit?

Fischer: The official SDK is written in C++ and is very comprehensive, partly because it needs to support many platforms. It’s designed for embedded devices – lamps, plugs, and so on – and the APIs are geared toward that.

But if you’re working on a platform with more RAM and processing power, like a bridge or a controller, matter.js becomes a viable option. That’s where JavaScript can really shine. It’s easy to work with and helps a lot when writing code. We use TypeScript and have translated the entire specification into type definitions. That means the programming language itself gives you hints while coding about potential mistakes. It tells you which data types, structures, or functions belong where, according to the Matter spec. It’s really hard to do something wrong.

“The programming language itself gives you hints while coding about potential mistakes.”

So it’s unlikely that a lamp would be developed using matter.js?

Fischer: Right, lamps aren’t really a focus for us at the moment because JavaScript requires too much memory and processing power. Battery-powered devices or chipset-specific Thread and Wi-Fi connections are also out of scope. But matter.js can still be useful during product development – even if the final product is eventually built in C++ for an embedded environment.

JavaScript is great for prototyping. You can experiment, quickly try things out, and test whether a feature makes sense. With just seven lines of code, we can provide a simple device that’s fully functional and compliant with the standard. That allows developers to quickly create various device types to test their controllers. These are use cases that even some CSA members find interesting.

Where is matter.js being used right now? Are there already finished products?

Fischer: Yes, firstly in the open-source environment. Right now, I know of six fairly visible projects: ioBroker: ioBroker (link) and openHAB (link), – both coincidentally from Germany – which use matter.js for both bridge and controller functions. There’s also a plugin for the Node-RED programming environment (link) and a community plug-in for Home Assistant (link). Then there’s the Matterbridge project (link), which can pass on products from vendors like Shelly or Somfy to Matter – similar to how Homebridge works with HomeKit. All in all, these projects add up to tens of thousands of users.

In the commercial space, one manufacturer has already certified a bridge developed with matter.js. It’s expected to hit the market later this year. Other companies are also working on things, but I can’t say more about that yet.

“One manufacturer has already certified a bridge developed with matter.js.”

So, as a manufacturer, I can have my product, which was developed with matter.js, officially certified?

Fischer: Absolutely. Matter’s certification tests ensure that a device complies with the specifications, behaves correctly, and is interoperable. If it passes all the tests, and the manufacturer fulfills other formal requirements like CSA membership, there’s nothing standing in the way of certification – regardless of which SDK was used for development.

We’re listed in the official “Matter Handbook” as the second SDK (link) and are considered an alternative implementation by the members of the Alliance. In fact, sometimes our work uncovers interoperability issues or ambiguities in the specifications. We develop strictly according to the specs and, of course, report everything we find along the way.

The current version number – 0.13 – might sound a bit off-putting to some users. It suggests a beta. Why isn’t there a 1.0 yet?

Fischer: That’s mainly because we haven’t yet implemented 100% of the Matter protocol’s features. For example, over-the-air software updates aren’t available yet because they haven’t been relevant so far. We’re also still working on group functionality. Compatibility with Matter 1.4 was just etablished with version 0.13.

And in the open-source world, versioning works a bit differently. There are semantic rules: once we hit v1.0, any breaking change to the library requires a version jump. That would quickly take us to 2.0 or 3.0. So we’ll only release 1.0 when we’re really ready, to avoid inflating the version numbers.

“Compatibility with Matter 1.4 was just established.”

What’s next? Where do you want matter.js to be in one or two years?

Fischer: Our priorities are clear. We’ll keep working toward full feature coverage and staying up to date with the evolution of the Matter standard. New features and device types are being added all the time. I’d also love to see even more products adopt matter.js – there’s a lot of exciting momentum right now.

Beyond that, I’d like to invite all developers who are interested in matter.js to get involved. It’s all open source. There’s a Discord server called “Matter Integrators” (link) where about 400 users and developers are actively exchanging ideas – about the specs and how to interpret them. It’s not affiliated with the Alliance, but it’s a great resource for anyone who’s interested.

Mr. Fischer, thank you very much for this interview.

Share this information:

Sponsor / Advertising

Eve Blinds Collection

Sponsor / Advertising

Eve Blinds Collection
Scroll to Top