Matter & Flutter?

slashhome – eine Cross-Plattform-Lösung zur Steuerung Matter-kompatibler Smart-Home-Geräte

vonJannis GärtnerinTechnology & Smart Home

„Konzeption und Implementierung einer mobilen Cross-Plattform-Lösung zur Steuerung Matter-kompatibler Smart-Home-Geräte” lautet der Titel der Bachelor-Arbeit, welche ich in den vergangenen Monaten in Kooperation mit slashwhy bearbeiten durfte. Das Ziel dabei war, zu erforschen, wie der im Oktober 2022 veröffentliche Smart-Home-Standard Matter für die Entwicklung von Smart-Home-Apps im Cross-Plattform-Ansatz mit dem Framework Flutter verfügbar gemacht werden kann.

Matter ist eine Initiative hunderter Unternehmen aus den Branchen Smart Home und Halbleiter. Der Standard hat zum Ziel, die Fragmentierung zwischen unterschiedlichen im Smart Home verwendeten Kommunikationstechnologien und Hersteller-Ökosystemen zu verringern, indem ein offener und übergreifender Standard in der Kommunikation genutzt wird. Matter legt einen Fokus auf Benutzerfreundlichkeit, Sicherheit und Datenschutz und wird von der Connectivity Standards Alliance herausgegeben. Mehr Informationen zu den Vor- und Nachteilen von Matter gegenüber bestehenden Technologien, wie z. B. ZigBee, finden sich in unserem Blog-Beitrag What’s the Matter.

Flutter ist eine Software, mit der Anwendungen (Apps) für verschiedene Betriebssysteme entwickelt werden können – unter anderem für Android und iOS.

Die offizielle Implementierung der Matter-Spezifikationen, das Matter SDK, bietet Referenz-Implementierungen (d. h. verwendbare Software) für nativ entwickelte Apps, bei denen Schnittstellen in den Programmiersprachen Java und Kotlin für Android sowie Objective-C und Swift für iOS bereitstehen. Das Matter SDK selbst ist in den Programmiersprachen C und C++ entwickelt. Für Flutter Apps hingegen gibt es bislang keine direkte Matter-Integration, da Flutter Apps mit der Programmiersprache Dart entwickelt werden. Im Kontext meiner Bachelor-Arbeit habe ich nun eine Lösung geschaffen, die es Entwickler:innen ermöglicht, Matter-fähige Cross-Plattform-Anwendungen mit Flutter in Dart zu entwickeln.

Technische Umsetzung

Umgesetzt habe ich zunächst eine Lösung für die Android-Plattform; eine Umsetzung für iOS kann folgen. Die Lösung besteht aus zwei Flutter Plugins. Das erste Plugin stellt eine Methode zur Inbetriebnahme eines Matter-Gerätes bereit. Das zweite Plugin dient zur Steuerung der Matter-Geräte über das Interaktions- und Datenmodell von Matter.

Flutter Plugins sind Softwarepakete, die sowohl Dart-Code als auch Plattform-nativen Code beinhalten und somit native Schnittstellen auf Dart-Ebene bereitstellen können.

In unseren Plugins soll das Matter SDK für Android mit seiner nativen Java- und Kotlin-Schnittstelle verwendet und auf Dart-Ebene nutzbar gemacht werden.

Um Java-Code auf Dart-Ebene verfügbar zu machen, gibt es jnigen. Das ist ein junges, von Google bereitgestelltes Tool, das zu bestehendem Java- bzw. Kotlin-Code entsprechende Schnittstellen in Dart generieren kann. Es baut auf dem Dart Foreign Function Interface (Dart-FFI) und dem Java Native Interface (JNI) auf.

Der Ansatz der Code-Generierung bietet mehrere Vorteile, wie ein geringeres Risiko für Fehler im Plugin-Code bei den zahlreichen, sich im Matter SDK wiederholenden Mustern. Ebenso fördert dies die Wartbarkeit der Software, wenn z. B. mit einer neuen Version der Matter-Spezifikationen weitere Gerätetypen hinzukommen. Solche Updates sind in regelmäßigen Abständen vorgesehen.

Das Plugin zur Inbetriebnahme verwendet auf Android-Smartphones mit Google-Diensten, die dort gewohnte Benutzeroberfläche für Setup-Prozesse (vgl. What’s the Matter).

Das Projekt slashhome

Um die Funktionsfähigkeit der entworfenen Lösungen zu validieren und zu präsentieren, ist zudem ein Projekt slashhome entstanden. Es besteht aus einer Flutter-Android-App und einem Muster-Smart-Home mit individuellen slashhome-Smart-Home-Geräten, die durch die Verwendung zugehöriger Matter-Software als Matter-Endgeräte in ein Matter-Netzwerk eingebunden werden können.

Es handelt sich um Geräte, die als ESP32-Mikrocontroller in 3D-gedruckten Gehäuseeinfassungen unterschiedliche Leuchtmittel zu Demonstrationszwecken simulieren. Sie werden in einem WLAN-Netzwerk betrieben und können in die slashhome-App eingebunden und von ihr gesteuert werden.

Wie geht es nun weiter?

Die zwei entstandenen Plugins sollen zukünftig weiterentwickelt werden, um sämtliche Matter-Funktionalitäten stabil zu unterstützen. Zudem besteht ein Konzept, wie sich iOS als zweite Plattform und später möglicherweise die beliebtesten Desktop-Betriebssysteme sowie das Web als Plattform ergänzen lassen. Dies soll erreicht werden, indem die Weiterentwicklung zukünftig als Open Source Software unter Beteiligung der Öffentlichkeit erfolgt. Eine Veröffentlichung der Plugins in der Paketverwaltung für Flutter- und Dart-Projekte pub.dev ist zudem mittelfristig vorgesehen.

Das slashhome-Projekt mit App und Muster-Smart-Home trägt einen Teil zur Wissensbasis von slashwhy über den Matter-Standard bei und dient zudem zu Demonstrations- und Ausbildungszwecken.

Welche Erfahrungen konnte ich während meiner Bachelor-Arbeit bei slashwhy machen?

slashwhy ist ein modernes und offenes Unternehmen, das es mir ermöglichte, meine Bachelor-Arbeit optimal umzusetzen. Besonders herauszustellen ist die flache Organisationsstruktur, die es mir erlaubte, Kolleg:innen aus dem gesamten Unternehmen für Ratschläge zu konsultieren. Zu fast jedem Thema fanden sich die passenden Expert:innen. Diese Kollaborativität mit direkten Kommunikationswegen erlaubte einen schnellen Austausch, sowohl auf technischer als auch organisatorischer Ebene.

Die Bachelor-Arbeit wurde von der Hochschule Osnabrück und slashwhy im November 2023 mit der Note 1.0 bewertet.

Über den Autor

  • jannis-gaertner

    Über Jannis Gärtner

    Jannis hat sich im Zuge seines Bachelor-Studiums der Informatik an der Hochschule Osnabrück für die Durchführung seiner Praxisphase bei slashwhy entschieden. Nach einem dreimonatigen Praktikum in der Softwareentwicklung hat er innerhalb von circa drei weiteren Monaten seine Bachelor-Arbeit bei slashwhy umgesetzt.