oliverlorenz.com

[feed]  [twitter]  [mastodon]  [xing]  [linkedin]  [github]  [matrix] 

Flow-based Programming und IoT

21. May 2016

Auch schon bevor ich beruflich in diesen Bereich gegangen bin, habe ich mich in Ansätzen mit dem Thema Flow-based Programming auseinandergesetzt, ohne dass es mir bewusst so war.

Wer aktuell mit mir Tech-Smalltalked wird auffallen, wie sehr ich ins Schwärmen komme, wenn das Gespräch in Richtung NodeRED geht. NodeRED wirbt mit dem Slogan

"Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways."

Diese "neuen und interessanten Wege" sind nicht nur das. Die optische Darstellung der Flows unterstützen zusätzlich das Prototyping von kleinen Projekten und Schnittstellen unglaublich. Diese Möglichkeit motiviert auch fern ab des Rechners über workflows nachzudenken und einfach mal zu basteln. Viele meiner kleinen Alltags-Projekte sind so auf dem Handy entstanden.

Niemals zuvor konnte man kleine Dienste so schnell zusammenbasteln wie mit diesen Tools. Das gilt nicht nur für NodeRED, sondern auch für Automagic auf Android.

Beispiele

Monitoring - Bei Cybus haben wir zum Beispiel ein Emergency-Monitoring auf Basis von NodeRED aufgebaut. Intern liebevoll "Der Bademeister" getauft, überwacht dieser unsere Cybus Instanzen ob irgendwelche erkennbaren Probleme vorliegen.

Home-Automation - Meine Wohnung ist mittlerweile an verschiedenen Stellen IoTifiziert. Betritt eine bekannte Person die Wohnung geht im Flur z.B. das Licht an. Ist niemand mehr in der Wohnung, werden alle Lichter ausgeschaltet.

Situationserkennung und Metriken - Mein Handy ist ständig auf der Suche nach Informationen aus meinem Umfeld. Befinde ich mich in der Nähe von gewissen WLAN-Netzwerken tracke ich die Zeit mit wie lange ich mich an diesem Ort befinde. Schon habe ich einen Überblick über meine Arbeitszeiten.

Bots - Die Verarbeitungseinheit mein Projektes "Hamburg-Bots" basiert zu einem Großteil auf NodeRED. Wer mehr dazu erfahren will, kann sich gern hier belesen.

Das sind nur einige Beispiele. Die Möglichkeiten sind nahezu grenzenlos.

Tools

NodeRED

Hach! Ich komme schon wieder ins schwärmen. Installiert es euch und spielt damit! NodeRED wird hauptsächlich von IBM entwickelt und ist eine wichtige Komponente der IBM Cloud Solution Bluemix.

Die eigentliche Stärke dieses Projektes ist aber die Community dahinter. Es gibt bereits über 400 (!) Plugins die die Möglichkeiten des Tools erweitern. Auch ich habe mich mit meiner Trello-Node bereits an der Erweiterung beteiligt.

Wer sich einen Überblick verschaffen möchte sollte bei npmjs.org nach der Namenskonvention "node-red-contrib" suchen, oder dem Twitter Account @red_nodes folgen.

Automagic

Was NodeRED für den PC ist, ist Automagic für Android. Automagic versetzt einen in die Lage auf die komplette Bandbreite an Sensorik und Triggern eures Gerätes zuzugreifen und diese innerhalb von Flows miteinander zu kombinieren.

Was ich bis heute nicht verstehe ist die Dominanz des Konkurrenz-Tools Tasker in diesem Bereich. Es bietet weder die Vielfalt der Möglichkeiten, noch ist es in der Bedienung so intuitiv wie Automagic. Nichtsdestotrotz hat es Tasker geschafft eine breite Masse an Plugin-Entwickern um sich zu versammeln was auch Automagic zugute kommt. Denn: Die meisten Plugins für Tasker kann man auch in Automagic verwenden!

Automagic gibt es auch als Testversion. Sollte euch das Tool gefallen, unterstützt den Entwickler und gebt die wenigen Euro aus. Das Preis-Leistung-Verhältnis ist der Hammer!

Ausblick

Mit Flow-based Programming und IoT haben zwei Gebiete zueinandergefunden die ein enormes Potenzial haben. Flow-based Programming nimmt der Programmierung ein Stück weit die Komplexität. IoT verschiebt die Möglichkeiten immer mehr in die physische Welt. Diese Kombination bringt enorm viel Spaß denn die Lernkurve ist Steil und Projekte sind schnell umgesetzt.

Auf die einzelnen Tools werde ich in separaten Blog-Posts eingehen.

Wer einen tieferen Einblick in die Thematik haben möchte, sollte sich den 14. Oktober vormerken und mich auf dem Developer Open Space treffen!