macchina.io ist eine Software-Entwicklungsplattform für IoT Gateways und Edge Devices. Diese fungieren als Bindeglied zwischen Sensoren und Aktoren auf der einen Seite, sowie Unternehmensapplikationen, Cloud-Diensten oder mobilen Apps auf der anderen Seite. Mit macchina.io steht eine flexible, skalierbare, mit offenen Schnittstellen und als Baukastensystem aufgebaute Plattform unter der Apache 2.0 Lizenz zur Verfügung. Macchina.io setzt auf den renommierten open source POCO C++ Libraries auf.
macchina.io [1] ist ein Softwarebaukasten zum schnellen Prototyping, sowie zur Entwicklung von Edge- und Fog Computing Applikationen für das Internet der Dinge. Diese Applikationen laufen auf vernetzten, typischerweise Linux-basierten Geräten, sowie IoT Gateways und kommunizieren einerseits mit lokal angebundenen Sensoren, Aktoren und anderen Geräten, sowie andererseits auch mit der Cloud. Zu diesem Zweck bietet macchina.io eine Vielzahl an Softwaremodulen die flexibel kombiniert werden können. So werden z. B. verschiedene Kommunikationsprotokolle und -technologien aus dem IoT und Automatisierungsbereich unterstützt, wie z. B. Bluetooth LE, 6LoWPAN, Modbus oder OPC-UA, aber auch Internet Technologien wie HTTP, REST und MQTT.
macchina.io unterstützt mehrere Programmiersprachen, bzw. Programmiermodelle. Als Programmiersprachen werden derzeit C++ und JavaScript unterstützt. C++ wird vornehmlich für low-level Code (z. B. Geräteanbindungen und Kommunikationsprotokolle) verwendet, während JavaScript für die Entwicklung der Applikationslogik stark vereinfacht und beschleunigt. Zusätzlich steht eine Dataflow Engine mit einem graphischen, web-basiertem Editor zur Verfügung um einfache Applikationen auch ohne Code realisieren zu können. Ein in macchina.io integrierter Web Server mit diversen vorgefertigten Web-Applikationen ermöglicht schnelles Ausprobieren von eigenen Ideen. Umfangreiche Funktionen zum Webbasierten Gerätemanagement (Konfiguration, Installation von neuen Software-Komponenten) sind bereits vorhanden. Mit my-devices.net ist weiters eine sichere Remote Access Technologie integriert.
macchina.io steht auf Github [2] unter der Apache 2.0 License zur Verfügung.
Folgende neue Features und Verbesserungen konnten im Rahmen des netidee Projektes in macchina.io implementiert werden:
• Verbesserungen am JavaScript Laufzeitsystem • Task Scheduler Service • Network Environment Service • Device Status Service • Web Applikation zur Konfiguration • Web Applikation zur Protokollierung und Darstellung von Sensordaten • Modbus Protokoll • Bluetooth LE • 6LoWPAN • Zusätzliche Hardware- und Sensorunterstützung • Ubuntu Snap • OpenWRT Package • Windows Unterstützung • Dataflow Engine und Editor • OPC-UA